首页 / 软件开发 / C++ / 高质量C++/C编程指南-第9章-类的构造函数、析构函数与赋值函数(3)
高质量C++/C编程指南-第9章-类的构造函数、析构函数与赋值函数(3)2007-05-06林锐9.3 构造和析构的次序
构造从类层次的最根处开始,在每一层中,首先调用基类的构造函数,然后调用成员对象的构造函数。析构则严格按照与构造相反的次序执行,该次序是唯一的,否则编译器将无法自动执行析构过程。一个有趣的现象是,成员对象初始化的次序完全不受它们在初始化表中次序的影响,只由成员对象在类中声明的次序决定。这是因为类的声明是唯一的,而类的构造函数可以有多个,因此会有多个不同次序的初始化表。如果成员对象按照初始化表的次序进行构造,这将导致析构函数无法得到唯一的逆序。[Eckel, p260-261]9.4 示例:类String的构造函数与析构函数
// String的普通构造函数String::String(const char *str){if(str==NULL){m_data = new char[1];*m_data = ‘