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 einfach

    klasse &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;
    }
    

Anmelden zum Antworten