【1】为什么需要继承构造函数?
首先,看看如下代码片段:
1 struct A 2 { 3 A(int i) 4 {} 5 }; 6 7 struct B : A 8 { 9 B(int i) : A(i) 10 {} 11 };
在C++中非常常见:B派生于A,B在构造函数中调用A的构造函数,从而完成构造函数的“传递”。
有时候,基类可能拥有数量众多的不同版本的构造函数(这样的情况并不少见)。
那么,倘若基类中有大量的构造函数,而派生类却只有一些成员函数时,那么对于派生类而言,其构造就等同于构造基类。
为了遵从语法规则,就需要写很多的“透传”的构造函数。如下面这个例子: