class Foo
{
public:
const int x;
};
class Bar
{
private:
const int x;
};
Output:
test.cpp:10:13: warning: non-static const member ‘const int Bar::x’ in class without a constructor [-Wuninitialized]
Why does Barproduce a warning but Foo doesn't (obviously because of access qualifier, but what is the logic?).
With those definitions, since Foo::x is public, you can validly instantiate a Foo with something like:
Foo f { 0 }; // C++11
or
Foo f = { 0 };
You can't do that for a Bar.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With