1

次のコードを検討してください。

struct base
{
    int x, y, z;
};

struct derived : private base
{
    using base::base;
};

int main(int argc, const char *argv[])
{
    base b{1, 2, 3}; // Allowed
    derived d{1, 2, 3}; // Not allowed
}

この行derived d{1, 2, 3};により、コンパイラ (Clang 3.3) が「「派生」の初期化に一致するコンストラクタがありません」というエラーで失敗します。どうしてこれなの?derived集計の初期化を介して初期化する方法はありますか?

4

1 に答える 1