2
最近,我已經看到成員變量在C++初始化爲這樣:c + +初始化成員變量與{}
class foo
{
public:
foo();
private:
bool bar{false};
};
什麼是這樣的變量的初始化的點/如何做成員變量聲明/定義像這樣的不同,或者與使用初始化列表沒有區別:
foo::foo() : bar(false) {}
最近,我已經看到成員變量在C++初始化爲這樣:c + +初始化成員變量與{}
class foo
{
public:
foo();
private:
bool bar{false};
};
什麼是這樣的變量的初始化的點/如何做成員變量聲明/定義像這樣的不同,或者與使用初始化列表沒有區別:
foo::foo() : bar(false) {}
當你有很多構造函數時,這很有用。 bool bar{false};
表示設置欄爲false,除非構造函數將其初始化爲其他值。這只是爲了方便
見http://en.cppreference.com/w/cpp/language/data_members#Member_initialization了更詳細的解釋
什麼將是你最好的猜測? –
根據查看使用情況和我可以找到關於它的信息,它似乎會給出默認值?但是,從某種意義上說,它是如何與初始化列表中的默認值不同的? – mdmiller002