12
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しないのですか(明らかにアクセス修飾子のためですが、ロジックは何ですか?)。

4

1 に答える 1

12

これらの定義では、が公開されているため、次のようなものでをFoo::x有効にインスタンス化できます。Foo

Foo f { 0 }; // C++11

また

Foo f = { 0 };

あなたはのためにそれをすることはできませんBar

于 2013-03-25T10:37:30.577 に答える