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