Lowlevel
OffZone => Offtopic => Thema gestartet von: Pk3 am 03. September 2009, 10:36
-
Hi, bin grade dabei eine Klasse in C zu schreiben, komme aber
an einem Punkt nicht weiter.
Ich will eine Funktion, die in in einer Funktion definiert ist, außerhalb
der Klasse redefinieren. Also so:
class Klasse {
public:
void Funktion(int i);
};
Klasse KL;
void KL::Funktion(int i) {
// ...
}
Da kommt dann diese Meldung:
KL is not a class or namespace
Bei
void KL.Funktion(int i) {
// ...
}
kommt
expected initializer before '.' token|
Weiß jemand wie das richtig geht?
-
Kann sein, dass ich falsch liege, aber eigentlich sollte doch anstatt KL der Klassenname stehen, also wie folgt:
void Klasse::Funktion(int i) {
// ...
}
Gruß Christian
-
Sorry, will das aber anders machen, z.B. so:
Klasse KL1
Klasse KL2
Klasse KL3
void KL1::Funktion(int i) {
printf("KL1");
}
void KL2::Funktion(int i) {
printf("KL2");
}
void KL3::Funktion(int i) {
printf("KL3");
}
-
Dann müsstest du die Klassen ableiten. In C++ wird das wie folgt gemacht (wie es mit Object-C aussieht, weiß ich nicht):
class Klasse {
public:
void Funktion(int i);
};
class KL1 : public Klasse {
public:
void Funktion(int i);
};
class KL2 : public Klasse {
public:
void Funktion(int i);
};
class KL3 : public Klasse {
public:
void Funktion(int i);
};
Dann würde das Konstrukt gehen. Mir ist nicht bekannt, dass das Konstrukt, wie du es machen möchtest, machbar ist. Aber ich weiß ja auch nicht alles. ;)
-
Vielen Dank, klappt wunderbar :wink:!
-
Nach Offtopic verschoben. Hat offensichtlich nichts mit OS-Dev zu tun, sondern mit Unkenntnis einer Programmiersprache (und noch dazu Unkenntnis, welche Sprache man überhaupt schreiben möchte - es handelt sich um C++, nicht um C).