-4
我見過一個對象的構造函數(例如類A)被稱爲A()
和A{}
最新的區別?他們似乎都做同樣的事情。不同的方法調用c + +構造函數
我見過一個對象的構造函數(例如類A)被稱爲A()
和A{}
最新的區別?他們似乎都做同樣的事情。不同的方法調用c + +構造函數
他們似乎都做同樣的事情。
這是因爲它們是同一事物的兩種替代語法。
最新的區別是什麼?
A{}
不存在,直到C++ 11。A a()
在語法上與函數聲明不一致,語言規則聲明它是函數聲明。 A a{}
解決了此限制,因爲它不是函數聲明的語法。現在,這是A a()
和A a{}
之間的差異以及存在A a{}
的原因,但是不需要不具有A{}
的不一致性。另有說法爲除了A()
有A{}
是A { arg1, arg2, ... };
是列表初始化語法。對於泛型編程而言,支持一個空參數列表是必要的(或者至少非常有用):A{}
。
_'A a()'在語法上與函數declaration_有關:在Scott Meyers,IIRC之後,有時它被稱爲「最令人頭痛的解析」。 – rfx
您的C++書籍在這個主題上說了些什麼? –
請參閱:http://en.cppreference.com/w/cpp/language/initialization –
花更多時間閱讀構造函數,您將自己得到答案。 – secretgenes