Veröffentlicht 26. September 200222 j 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...
26. September 200222 j Vielleicht gehts ja so X& ref = somecondition ? x1 : x2 ; Nach der Deklaration der Referenz hast du aber meiner Meinung nach keine Chance mehr.
26. September 200222 j 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
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.