2
可能重複:
different types of initialization in C++C++調用帶括號的默認構造函數VS沒有括號
有什麼區別調用基類的構造類似
Foo afoo;
之間的所有vs
Foo afoo();
可能重複:
different types of initialization in C++C++調用帶括號的默認構造函數VS沒有括號
有什麼區別調用基類的構造類似
Foo afoo;
之間的所有vs
Foo afoo();
是:第一個是變量定義,第二個是函數聲明。現在,讓我們討論這兩個詞語之間的差異的更有趣的問題:
new Foo()
new Foo
是否有差別取決於Foo
及其成員的類型!
Foo
有一個明確的默認構造函數兩個相同請注意,這也適用於類的成員。對於變量不能使用使用括號的形式,即以確保初始化對象,你需要使用
Foo aFoo = Foo();
如果沒有明確的構造函數取一個參數,或者你不知道(例如,在模板代碼) 。
感謝您的分解和遺憾,重複'?' – pyInTheSky 2012-01-12 19:14:08
是的,#2正在聲明一個函數。 – 2012-01-12 18:45:57
是的,第一個構造了一個'Foo'類型的對象,第二個沒有。 – 2012-01-12 18:46:26