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