C++ 统一初始化不';无法在ctor中初始化父对象
假设我有一个结构:C++ 统一初始化不';无法在ctor中初始化父对象,c++,c++11,C++,C++11,假设我有一个结构: struct A { int i; }; 我可以将其初始化为: A a{1}; 现在我有了一个派生类: struct B : public A { B(int _i) : A{_i} {}; }; 但是我在B struct ctor中有一个编译错误: error: no matching function for call to ‘A(<brace-enclosed initializer list>)’ 错误:调用'A()'时没有匹配
struct A
{
int i;
};
我可以将其初始化为:
A a{1};
现在我有了一个派生类:
struct B : public A
{
B(int _i) : A{_i} {};
};
但是我在B struct ctor中有一个编译错误:
error: no matching function for call to ‘A(<brace-enclosed initializer list>)’
错误:调用'A()'时没有匹配的函数
编译器是gcc-4.6(SUSE Linux)4.6.3您的代码没有任何错误;很简单,您的编译器不支持所有必需的C++11特性
您的构造函数使用GCC4.7.0编译得很好。Ok,似乎是时候升级了:)