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... Zitieren
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. Zitieren
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 Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.