int main(void) { f(3); // hier der Fehler cout << endl; return0; }
Doch leider hat der Compiler damit folgendes Problem: test6.cpp: In function `int main()': test6.cpp:42: error: no matching function for call to `Kang::Kang(Kang)' test6.cpp:28: error: candidates are: Kang::Kang(Kang& test6.cpp:22: error: Kang::Kang(int) test6.cpp:42: error: initializing temporary from result of `Kang::Kang(int)'
Wenn ich jedoch meinen eigenen KopierKonstruktor loesche, funktioniert das ganze wieder. Obwohl doch der Compiler, dann seinen eigenen Kopierkonstruktor mit der selben Angabe bis auf die Ausgabe erstellen müsste. Oder seh ich da etwas falsch?
Gibt es eine Möglichkeit meinen eigenen Kopierkonstruktor mit einzubauen, so dass diese implicite Umwandlung funktioniert.
ich würde dir aber dennoch empfehlen die eigenschaften wie:
Code:
int groesse;
in den 'private-bereich' zu legen.
Zitat von ~partisan:
...Jetzt muss ich nur noch darueber nachdenken wieso.
schätze mal es ist im standard-c so vorgeschrieben ist -- ...um etwas zu verstehen muß man wissen wie es funktioniert...Dieser Post wurde am 13.02.2005 um 12:37 Uhr von enno-tyrant editiert.