Klotzkopp Geschrieben 26. September 2002 Geschrieben 26. September 2002 Hallo zusammen, class X { public: X() { n = 0; } X( const X& ref ) { n = ref.n; } X& operator=( const X& rhs ) { if( &rhs != this ) { n = rhs.n; } return *this; } private: int n; }; int main() { X x1, x2; bool someCondition = true; X& xref = x1; if( someCondition ) { [COLOR=RED]xref = x2;[/COLOR] } return 0; }[/CODE] Das ist nur Beispielcode, um die Frage zu veranschaulichen. An der rot markierten Stelle wollte ich eigentlich die Referenz ändern, so dass sie auf x2 verweist. Allerdings wird an dieser Stelle der Zuweisungsoperator aufgerufen, was im Nachhinein betrachtet auch Sinn macht, selbst wenn es nicht das ist, was ich wollte. Kennt jemand eine Lösung für das, was ich vorhatte? Dabei möchte ich nach Möglichkeit nicht auf Zeiger zurückgreifen...
hoagi Geschrieben 26. September 2002 Geschrieben 26. September 2002 Vielleicht gehts ja so X& ref = somecondition ? x1 : x2 ; Nach der Deklaration der Referenz hast du aber meiner Meinung nach keine Chance mehr.
Guybrush Threepwood Geschrieben 26. September 2002 Geschrieben 26. September 2002 Hi, sind die Unterschiede zwischen Zeigern und Referenzen nicht folgende: -Refernzen müssen bei der Deklaration auf eine Variable zeigen -Refrenzen dürfen nicht auf NULL zeigen und -Refrenzen dürfen nach der Deklaration nicht mehr auf andere Variablen zeigen(also umgebogenwerden)? Die einzige Möglichkeit wäre also mit Zeigern anstatt Refrenzen zu arbeiten. Gruß wasweißich
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden