【发布时间】:2014-06-08 12:57:33
【问题描述】:
我知道默认构造函数不是继承的,如n3337 中所述。
还有一个例子:
struct B2 {
B2(int = 13, int = 42);
};
struct D2 : B2 {
using B2::B2;
};
解释得很好:
D2中B2的候选继承构造函数集是... —B2(int = 13, int = 42) —B2(int = 13) —B2()
最重要的是:
D2中存在的构造函数集是—D2(),隐式声明的默认构造函数,不继承
对我来说,这个例子并没有显示出区别,从某种意义上说,即使这个构造函数是被继承的——它的行为与隐式声明的默认构造函数并没有什么不同。
我需要一个示例,以让熟悉 C++03 但想学习 C++11 的观众易于理解。
[更新]
所有答案(包括我自己的)都是“如果默认 c-tor 被继承,那么示例将编译/不编译”。
我更喜欢结果(可观察到的行为)与其他情况不同的答案。
【问题讨论】:
标签: c++ inheritance c++11 default-constructor inherited-constructors