可能重複:
Why is there no call to the constructor?測試t之間的區別是什麼;和Test t();?如果測試是一類
我使用Visual Studio 2012,假設測試是一類
class Test
{
};
當我創建一個新的實例的測試,以下兩種方式有什麼區別?
方式1
Test t;
方式2
Test t();
我在下面的代碼這個問題,原來,我在方式2中定義A的一個實例,我只有一個錯誤,因爲乙沒有提供默認的構造函數,但是當我以方式1定義它時,我得到了一個額外的錯誤。
class B
{
B(int i){}
};
class A
{
A(){}
B b;
};
int main(void)
{
A a(); // define object a in way 2
getchar() ;
return 0 ;
}
如果我的方式定義1
A a;
我會得到另一個錯誤說
錯誤C2248: 'A :: A':不能訪問類中聲明私有成員 'A'
所以我想必須有一些差異兩種方式。
+1的圖片:-) –
好,多麼愚蠢的問題,我相信我之前知道,但今天......這不是我的日子,:( – zdd
@zdd它發生。 –