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 Bar
produce 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