3

请看一下代码:

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已经被继承,不能这样调用。为什么?这是否意味着只有在派生类没有构造函数(或默认构造函数)时才能调用继承的构造函数?

4

0 回答 0