Anfängerfrage zu Referenzen



  • Hi ich habe folgendes Problem:
    Ich habe aus einem Beispielcode folgende Codezeile

    ClientRegistry& registry = app-> getRegistry();

    registry soll in 2 Methoden einer Klasse verfügbar sein.

    Ich wollte also Clientregistry &registry;
    in die *.hpp schreiben.
    Allerdings mus man ja Referenzen initialisieren.

    Clientregistry &registry = 0; ging auch nicht.

    Wie deklariere und inititialisiere ich also eine Referenz so dass sie in der Klasse verfügbar ist?



  • Du kannst sie als Member deiner Klasse anlegen und dann in der Initialisierungsliste des Konstruktors mit einer Zieladresse versorgen:

    class myClass
    {
    public:
      myClass() : reg(app->getRegistry()) {}
    private:
      ClientRegistry& reg;
    }
    

    (Alternativ kannst du auch Pointer verwenden, die lassen sich nachträglich mit einem Wert belegen)



  • Danke erstmal.

    Das ich auch Pointer verwenden kann sagt mir, dass eine Referenz also auch die Adresse eines Objekts enthält aber nicht verändert werden kann? Ein Pointer ist variabel.

    Immer wenn der Rückgabewert einer Methode ein Alias verlangt dann können auch Pointer verwendte werden?


Anmelden zum Antworten