继承时无法调用具有默认参数的构造函数

时间:2015-12-17 16:29:44

标签: c++ c++11 inheritance inherited-constructors

请看一下代码:

struct X {};

struct Foo {
    Foo (int n = {}, int p = {}) {}
};

struct Boo : Foo {
    using Foo::Foo;

    Boo (X n) {}
};

用法:

Boo boo1;

错误消息(GCC 5.2.1):

error: no matching function for call to ‘Boo::Boo()’

我知道Boo没有默认构造函数,但Foo的构造函数已被继承,无法以这种方式调用。为什么?这是否意味着只有派生类没有构造函数(或默认值)才能调用继承的构造函数?

0 个答案:

没有答案