有其他类的对象作为 成员对象的类叫封闭类。
任何生成封闭类对象的语句,都要让编译器明白,对象中的成员对象,是如何初始化的。
具体做法是通过封闭类的构造函数的初始化列表。
封闭类对象生成时,先执行所有对象成员的构造函数,然后才执行封闭类的构造函数。
对象成员的构造函数调用次序和对象成员在类中的说明次序一致,与它们在成员初始化列表中的出现次序无关。
当封闭类对象消亡时,先执行封闭类的析构函数,然后再执行成员对象的析构函数。次序和构造函数的调用顺序相反。其原因是如果封闭类带的析构函数中使用到了成员对象的内容,那么先执行成员对象的析构函数,就可能会导致封闭类的析构函数在执行时发生不可预估的错误。
封闭类构造函数实例。
class CTyre {
private:
int radius;
int width;
public:
CTyre<