可能重複:
Why is it an error to use an empty set of brackets to call a constructor with no arguments?爲什麼不「foo f();」調用類「foo」的構造函數?
我碰到了下面的問題。我創建了2個foo實例。 然後我意識到,foo f();
沒有執行一個類的構造函數。這是爲什麼?
class foo{
public:
foo() {cout <<"executed contructor...";}
};
int main() {
foo f(); // doesn't run the ctor???? why?
foo f2; // this one does execute the ctor
system("pause");
return 0;
}
看到這個前面的問題http://stackoverflow.com/questions/180172/why-is-it-an-error-to-use-an-empty-set-of-brackets- to-call-a-constructor-with-no – 2012-02-05 15:38:06
搜索最煩人的語法分析 – 2012-02-05 15:42:27
'foo f3(foo());'是最令人頭痛的解析的例子。 'foo f();'只是一個令人頭痛的解析。 – 2012-02-05 15:43:23