1

假设我有一个结构:

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>)’

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

4

1 回答 1

3

您的代码没有任何问题;只是您的编译器不支持所有必需的 C++11 功能。

您的构造函数可以使用 gcc 4.7.0 正常编译。

于 2012-12-25T10:51:24.867 回答