总体来说,结合了组合和继承的c++类中,构造函数和析构函数的调用顺序具有以下规律:
1、对于继承:如果有基类,首先构造指定类的基类;
2、对于组合:按照嵌入的成员对象的声明顺序构造它们,成员对象构造完成后再构造封装它们的这个类;
3、构造和析构本身依赖于压栈和出栈,因此析构函数的函数的调用应该遵循栈的特性,以“后进先出”为原则——析构函数的调用与构造函数完全相反,先构造的后析构,后构造的先析构;
原文地址:http://blog.csdn.net/wh201458501106/article/details/46316205