"public"访问限定符和"const"ness`-Wuninitialize
`public` access qualifier and `const`ness. `-Wuninitialized`
class Foo
{
public:
const int x;
};
class Bar
{
private:
const int x;
};
输出:
test.cpp:10:13: warning: non-static const member ‘const int Bar::x’ in class without a constructor [-Wuninitialized]
为什么Bar
会产生警告,而Foo
不会(显然是因为访问限定符,但逻辑是什么?(。
有了这些定义,由于Foo::x
是公共的,您可以使用以下内容有效地实例化Foo
:
Foo f { 0 }; // C++11
或
Foo f = { 0 };
你不能为Bar
那样做。