2012-12-25 150 views
1

假设我有一个结构:统一初始化不会在构造函数初始化父对象工作

struct A 
{ 
    int i; 
}; 

我可以初始化它:

A a{1}; 

现在我有一个派生类:

struct B : public A 
{ 
    B(int _i) : A{_i} {}; 
}; 

但是我在B结构中有编译错误:

error: no matching function for call to ‘A(<brace-enclosed initializer list>)’ 

编译器是gcc-4.6(的SUSE Linux)4.6.3

回答

3

没有什么不对您的代码;只是你的编译器不支持所有必需的C++ 11功能。

你的构造函数用gcc 4.7.0编译得很好。

+0

好的,现在好像是时候了:) – galadog