Adressen rückgabe
-
Jo,
ich würde gern ne Funktion ne Adresse zurückgeben lassen.
Hab die Fkt. inner KLasse welche auch nen Vektor verwaltet.
Die Funktion soll nun die Adresse von einem Element des Vektors an nen Pointer einer anderen Klasse übergeben damit der über die Adresse ne Memberfunktion aufrufen kann.
So dazu meine Frage. kann ich die Funktion einfach so die Adresse zurückgeben lassen? Also einfachklasse &funktion(klasse a; return &a;)oder geb ich damit die Adresse der Funktion zurück
So hoffe jemand kann mir helfen
mfg Kante
-
So geht es, aber das verhalten ist undefiniert denn die lokale Instanz der Klasse wird nach dem Verlassen der Funktion gelöscht und dein Pointer zeigt ins Nirvana.
klasse *funktion(klasse a; return &a;)
-
Soetwas macht man dann und wann bei Suchfunktionen:
class MyList { private: int iNo; MyList *pNext; //Mehr public: //Andere Methoden MyList *Search (int iNoLoc); }MyList *MyList::Search (int iNoLoc) { if (NoLoc == iNo) return this; else if (pNext != NULL) return pNext->Search (iNoLoc); else return NULL; }