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

3

我正在尝试编译以下代码(直接从维基百科中获取),以了解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

我不知道自己哪里出了错。

http://ideone.com/hDLJhN - Qwertiy
2个回答

4

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

来源


3
根据 GCC中的C++0x/C++11支持,直到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编译没有问题(实例)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接