当Base类中有多个构造函数时,在Derived类的初始化表达式表中只需要使用其中一个构造函数进行初始化就可以了,不需要把Base类中的所有构造函数都进行调用。
例如:
#include<iostream>
using namespace std;
class Base
{
public:
int x,y;
public:
Base(){}
Base(int a):x(a){}
Base(int a,int b):x(a),y(b){}
};
class Derived:public Base
{
public:
int m,n;
public:
Derived(){}
Derived(int a):m(a),Base(a){}//或者Base(a,a)
Derived(int a,int b):m(a),n(b),Base(a,b){}//不需要同时Base(a),Base(a,b)
};
int main()
{
Derived d;
getchar();
return 0;
}
高质量C++编程指南ch9.2