Problem mit Zeigerübergeben
-
Hi
ich hab ein problem. ich kopier jetzt net meinen direkten code, da das eh überflüssig ist.
klasse a hat einen zeiger auf ein objekt. klasse b brauch jetzt auch einen zeiger auf das objekt, aber nur für eine funktion.idee: mit funktion zeiger von klasse a holen und per konstruktor an klasse b übergeben.
soweit so gut.
RenderWindow* GOgre::getRenderWindow() { return mWindow; }das klappt soweit.
RenderWindow* window = Graphic->getRenderWindow(); Input = new GInput(&window);Input ist ne membervariable.
GInput::GInput(RenderWindow* window) { mWindow = window; }mWindow ist dann wieder ne membervariable.
ansich müsste das ja alles passen mit den typen, aber ich bekomme folgende fehlermeldung:
1>h:\......\gmain.cpp(19) : error C2664: 'GInput::GInput(Ogre::RenderWindow *)': Konvertierung des Parameters 1 von 'Ogre::RenderWindow **__w64 ' in 'Ogre::RenderWindow *' nicht möglich
wie kommt es dazu das window vom typ renderwindow** ist? ich hab doch eig. nur ein *
MfG
Eldarion
-
window ist vpm Typ RenderWindow*, also schon der Typ, den die Funktion da verlangt(einen Zeiger)
Du tust dir aber von dem Zeiger die Adresse holen(also faktisch dann ein Zeiger auf nen Zeiger, halt das **)
ergo lass einfach das & weg
-
oh sry, ich hattes vorher schonmal ohne & probiert und da gings nicht. das kam mir auch iwie spanisch vor, aber nen versuch wars wert. ich habe jetzt wohl noch was anderes geändert. es geht jetzt. danke.
