Mögliche Duplizieren ist:
Why is there no call to the constructor?Was sind die Unterschiede zwischen Test t; und Test t(); Wenn der Test eine Klasse
ich Visual Studio 2012 verwenden, Angenommen Test a Klasse
class Test
{
};
ist, wenn ich eine neue Instanz erstellen von Test, was ist der Unterschied der folgenden zwei Möglichkeiten?
Weg 1
Test t;
Weg 2
Test t();
Ich habe diese Frage in dem folgenden Code ursprünglich definiert I eine Instanz eines in Weg 2, ich habe nur einen Fehler, da B stellt keinen Standardkonstruktor zur Verfügung, aber wenn ich es in Weg 1 definiere, habe ich einen zusätzlichen Fehler bekommen.
class B
{
B(int i){}
};
class A
{
A(){}
B b;
};
int main(void)
{
A a(); // define object a in way 2
getchar() ;
return 0 ;
}
wenn ich eine in Art und Weise 1
A a;
definieren werde ich ein anderer Fehler, sagte
bekamFehler C2248: 'A :: A': kann nicht privat Mitglied in der Klasse erklärt zugreifen 'A'
Also ich denke, da müssen einige Unterschiede sein zwischen den beiden Wegen.
+1 für das Bild :-) –
gut, was für eine dumme Frage, ich bin sicher, dass ich das vorher weiß, aber ... es ist nicht mein Tag heute, :( – zdd
@ zdd es passiert. –