Lowlevel

OffZone => Offtopic => Thema gestartet von: Pk3 am 03. September 2009, 10:36

Titel: C Klasse-Funktion außerhalb redefinieren
Beitrag 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?
Titel: Re: C Klasse-Funktion außerhalb redefinieren
Beitrag von: ChristianF am 03. September 2009, 11:02
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
Titel: Re: C Klasse-Funktion außerhalb redefinieren
Beitrag von: Pk3 am 03. September 2009, 11:04
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");
}
Titel: Re: C Klasse-Funktion außerhalb redefinieren
Beitrag von: ChristianF am 03. September 2009, 11:39
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. ;)
Titel: Re: C Klasse-Funktion außerhalb redefinieren
Beitrag von: Pk3 am 03. September 2009, 12:07
Vielen Dank, klappt wunderbar  :wink:!
Titel: Re: C Klasse-Funktion außerhalb redefinieren
Beitrag von: kevin am 03. September 2009, 12:25
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).