PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Objekt(des)orientierte Frage



Burger
28-06-2002, 08:44
Hallo,

also ich habe zwei Klassen in C++ definiert. In Klasse 1 Existiert eine Funktion1 (public). Diese möchte ich nun in Funktion2 der Klasse2 aufrufen. Das mag mir nicht gelingen.

sowohl

void Klasse2::Funktion2()
{
Klasse1.Funktion1();
}

geht nicht, als auch

void Klasse2::Funktion2()
{
Funktion1();
}

Beidemale meckert mein Compiler. (Oder Debugger, oder wie sagt man da). Jetzt die Frage, wie bekomme ich das hin? Muss ich Funktion1 noch irgendwie besonder "freischalten"?

Danke,

Burger

P.S.: Bin in der Lernphase...

Burger
28-06-2002, 09:39
Boing,

hab's hinbekommen. Das Problem war gar nicht so grundsätzlich wie ich dachte. (Was ich damals aber noch nicht wusste) Ich hatte vergessen ein "meinArray[i]" davor zu schreiben. Ich persönlich dachte bis eben ich könnte es weglassen, geht aber nicht.

Dementsprechend hat sich die Anfrage oben erledigt.

Burger

micha
28-06-2002, 11:06
Hi,

Du kannst die Funktion von Klasse1 nicht direkt aus Klasse2 heraus aufrufen, außer

- Klasse2 ist von Klasse1 abgeleitet
- Die Funktion in Klasse1 ist static

Stattdessen musst Du zuerst ein Objekt erzeugen. Anschließend kannst Du dann die Funktion benutzen:



void Klasse2::Funktion2(void)
{
Klasse1 ersteKlasse;
ersteKlasse.Funktion1();
}


oder



void Klasse2::Funktion2(void)
{
Klasse1 *ersteKlasse = new Klasse1();
ersteKlasse->Funktion1();
delete( ersteKlasse );
}


Gruß micha

Burger
29-06-2002, 18:58
Hi,

ja, genau daran hatte es gelegen.

danke,

Burger