我昨天才知道,指定初始值設定項目的參數是可選的。但是,在這種情況下會發生什麼規則?C++初始值設定項列表中的默認值
在下面的例子中,將ptr初始化爲0,切換爲false,並且Bar默認構造?我猜這個問題有點多餘,因爲如果未指定參數值==未定義行爲,那麼初始化程序列表中會有點小問題。
我還可以指出C++標準中聲明初始化程序列表項沒有被賦予參數情況下的行爲部分嗎?
class Bar
{
Bar() { }
};
class SomeClass;
class AnotherClass
{
public:
SomeClass *ptr;
bool toggle;
Bar bar;
AnotherClass() : ptr(), toggle(), bar() { }
// as opposed to...
// AnotherClass() : ptr(NULL), toggle(false), bar(Bar()) { }
};
[構造函數初始化列表空初始化]的可能重複(https://stackoverflow.com/questions/11164394/constructor-initialization-list-with-empty-initialization) – Justin