& nbsp;小林编码成员对象和封闭类如果该类中还有其他对象,则将该对象称为“成员对象”,并将具有成员对象的类称为“封闭类”。

在上面的示例中,如果CCar类未定义构造函数,则将使用默认的无参数构造函数,并且以下语句将编译错误:CCar  car;因为编译器不了解应如何初始化CCar类中的tire成员对象。

引擎成员对象的初始化没有问题,因为可以使用CEngine类的默认构造函数。

任何生成封闭类对象的语句都必须让编译器了解如何初始化对象中的成员对象。

具体方法是:通过封闭类构造函数的初始化列表。

建造与销毁命令生成封闭类对象时,将首先执行所有成员对象的构造函数,然后执行封闭类的构造函数。

成员对象的构造函数的执行顺序与在封闭类中定义成员对象的顺序一致。

当一个封闭类的对象去世时,只需要记住一个句子:首先构造该对象,然后对其进行销毁。

因此,由于封闭类是最后构造的,因此封闭类对象首先被破坏。

通过以下代码示例,您可以更好地了解封闭类和成员函数的构造和销毁顺序:执行结果:CTyre& nbsp;构造函数CEngine构造函数CCar构造函数CCar析构函数CEngine析构函数CTyre& nbsp; Destructor复制包含类和函数的函数的构造函数;& nbsp;当封闭类执行复制构造函数时,成员对象还将执行相应的复制构造函数。

请参见下面的代码示例:输出结果:A& n构造函数A复制构造函数推荐阅读:C ++此指针的理解和功能C ++静态静态成员。

小林编码