1、派生类调用基类构造函数的两种方式
我们不能够直接在派生类的构造函数内部初始化派生类所包含的基类成员,因为派生类成员函数内部不能访问基类的私有成员。因此,我们应该使用初始化列表的方式初始化派生类所包含的基类成员。
在执行一个派生类的构造函数(初始化)之前,总是先执行基类(初始化)的构造函数。因此,在创建派生类的对象时,需要先调用基类的构造函数:初始化派生类对象中从基类继承的成员。
Bug::Bug( int legs, int color)
{
nLegs = legs;
nColor = color;
}
//错误的FlyBug构造函数
FlyBug::FlyBug ( int legs,int color, int wings)
{
nLegs = legs;// 派生类成员函数不能直接访问基类私有成员
nColor = color; // 派生类成员函数不能直接访问基类私有成员
nType = 1; // 派生类成员函数能直接访问基类公有成员
nWings = wings