使用 C++11 编译器的构造函数继承正在生成错误

constructor inheritance with C++11 compiler is generating error

本文关键字:错误 继承 C++11 编译器 构造函数 使用      更新时间:2023-10-16

我正在尝试编译以下代码(直接取自维基百科)以了解 C++11 中的构造函数继承:

class BaseClass {
    public:
    BaseClass(int value);
};
class DerivedClass : public BaseClass {
    public:
    using BaseClass::BaseClass;
};

我正在编译这个文件如下:

/usr/bin/g++-4.7 -c -std=c++11 file.cpp

但这给出了以下错误:

error: ‘BaseClass::BaseClass’ names constructor

我不知道我哪里出错了

直到 4.8 版才支持 GCC 支持继承构造函数。

根据 C++0x/C++11 GCC 继承构造函数的支持直到 gcc 4.8 才可用。

我可以用 http://gcc.godbolt.org/确认

class BaseClass {
    public:
    BaseClass(int value);
};
class DerivedClass : public BaseClass {
    public:
    using BaseClass::BaseClass;
};
int main()
{
}

使用 gcc 4.8.1 编译得很好(实时示例)