operator= für Referenzen



  • Hallo

    Ich wollte einer Membervariablen eine Referenz zuweisen,
    der Kompiler meckert aber, dass der operator= nicht verfügbar ist.

    private:
        Foo& foo_
    public:
        void set_foo( Foo& foo )
        {
            foo_ = foo;
        }
    

    Foo hat ein Array als privates Element, könnte das ein Problem sein?
    Wie müsste der Operator= aussehen?

    Danke im Voraus



  • Hallo

    du kannst einer Referenz nicht nach der Initialisierung eine neue Adresse zuweisen. Das ist ja einer der großen Unterschiede zu Pointern.
    Also must du wenn du das willst Pointer nehmen.

    bis bald
    akari



  • Hi!

    class Bar
    {
    private:
        Foo &foo;
    
    public:
        Bar( Foo &_foo )
        : foo( _foo )
        {}
    };
    

    Geht nur im C'tor per Initialisierungsliste. Ansonsten nimmst du wirklich einen Zeiger, wie akari schon sagte! 🙂

    grüße


Anmelden zum Antworten