000
08.12.2003, 10:37 Uhr
~stephanw
Gast
|
Hi! Betrifft folgenden Code (Dummy-Bsp);
C++: |
class Onkel { int a,b; public: Onkel() : a(0),b(0) {} Onkel(int num) : a(num),b(num) {} void printme () { std::cout <<"a:\t"<<a <<"\t" <<"b:\t"<<b <<"\n"; }
}; int main (int argc, char **argv) { Onkel on0(5); Onkel on1(); Onkel on2; Onkel on3 = Onkel(); on0.printme(); on1.printme(); on2.printme(); on3.printme();
exit(0); }
|
Erwartungsgemäß funktioniert das Anlegen von on0,on2 und on3 ohne Probleme. on2 nutzt den Standard-Kon, on0 und on3 den parametrisierten. Dummerweise geht on1.printme() nicht ( error C2228: Der linke Teil von '.printme' muss eine Klasse/Struktur/Union sein) . Scheinbar ist das Ergebnis von Onkel on1(); irgendwas außer vom Typ Onkel !?
Daher meine Frage: Bei Nutzung des Parameter-Konstruktors ist es scheinbar Wurst, ob ich Onkel on(5); oder Onke on = Onkel(5); schreibe. Beim Standard-Konstr. funktioniert das nicht gleich. Was ist der Unterschied ?
Gruß und Danke, Stephan. Dieser Post wurde am 08.12.2003 um 15:06 Uhr von Pablo Yanez Trujillo editiert. |