【发布时间】:2013-08-06 03:27:36
【问题描述】:
考虑以下代码:
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?
【问题讨论】:
标签: c++ inheritance c++11 aggregate-initialization