011
14.08.2005, 15:54 Uhr
Reiko
|
Oben hab ich die Zeilen verwechselt etc, also nochmal.
X(obj1); ergibt bei Visual C++ 6.0 einen Fehler: "neu definition", wobei "obj1" ein bereits vorher definiertes Objekt ist. Wovon soll es denn eine "neu definition" sein? X(obj1); ist ja der Copy-ctor X(const X& arg);
Und vor allem ist es so, dass man alle möglichen Konstruktoren alternativ folgendermaßen so schreiben kann: X::ctor (Aufrufe mit "Klassenbezug", z.b: X::X(12); ) ctor (Aufrufe ohne einen Bezug, z.b: X(12); )
Beide erstellen ja ein anonymes Objekt, aber beim Copy-ctor funktioniert nur die erste Schreibweise. Darum gehts mir.
X::X(obj1); // wird korrekt kompiliert; hier würde also das anonym erzeugte Objekt mit dem Inhalt des bereits vohandenen Objekts "obj1" überschrieben werden X(obj1); // wird nicht kompiliert Dieser Post wurde am 14.08.2005 um 15:57 Uhr von Reiko editiert. |