请看下面的例子:
记住:创建派生类对象时,程序首先调用基类构造函数,然后再调用派生类构造函数,基类构造函数
负责初始化继承的数据成员;派生类构造函数主要用于初始化新增的数据成员。派生类的构造函数总是调用一个基类构造函数 可以使用初始化器列表句法指明要使用的基类构造函数,否则将使用默认的基类构造函数
派生类对象过期时,程序将首先调用派生类析构函数,然后再调用基类析构函数,
成员初始化列表
派生类构造函数可以使用初始化器列表机制将值传递给基类构造函数
derived :: derived (typel x, type2 y): base (x. y) // initializer list
}
其中derived是派生类,base是基类,x和y是基类构造函数使用的变量:例如,如果派生类构造函数
接收到参数10和12,则这种机制将把10和12传递给被定义为接受这些类型的参数的基类构造函数 除
虚拟基类外(参见第14章),类只能将值传递回相邻的基类,但后者可以使用相同的机制将信息传递给相
邻的基类,依此类推 如果没有在成员初始化列表中提供基类构造函数,程序将使用默认的基类构造函数
成员初始化列表只能用于构造函数
{