title image


Smiley Verständnisfrage zum Zuweisungsoperator =
Hallo allerseits,als Noch-Anfänger in C++ habe ich ein Verständnisfrage zum Zuweisungsoperator =Gegeben sei das folgende einfache Programm:#include -iostream.h- //- steht fuer spitze Klammerclass Test{int i;public:Test(int j=0) : i(j) {}void Print(){cout }Test& operator=(const Test& op2);};Test& Test::operator=(const Test& op2){i = op2.i;return(*this);}void main(){Test a(10), b;b = a;b.Print(); //Kontrollausgabe liefert die Zahl 10}Das vorstehende Programm läuft einwandfrei. Allerdings ist mir die übliche Syntax zum Zuweisungsoperator = aus folgendem Grund unklar:Warum definiert man einerseits in der Elementoperator-Fkt. für = das Objekt op2 als Referenz, das bei Aufruf der Elementoperator-Fkt. mit dem Objekt a initialisiert wird, und hebt andererseits diese Referenzeigenschaft des Objektes op2 als L-Wert mit dem Schlüsselwort const gleich wieder auf? Will man eine Modifikation der Datenelemente des Objektes a verhindern, reichte es doch völlig aus, dem Objekt op2 die Datenelemente von Objekt a by value zu übergeben, d.h. die Definition der Elementoperator-Fkt. in der Form Test& operator=(Test op2); vorzunehmen. Und in der Tat funktioniert diese Funktion reibungslos.Warum verwendet man also üblicherweise die Elementoperator-Fkt. mit dem PrototytTest& operator=(const Test& op2);und nicht die VersionTest& operator=(Test op2);?Für Eure Bemühungen bedanke ich mich im voraus und verbleibemfG.

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: