C++浅析——继承类中构造和析构顺序
2015-05-16 00:19
204 查看
先看测试代码,CTEST 继承自CBase,并包含一个CMember成员对象:
测试代码:
运行结果:
1、构造顺序
基类→成员对象类→对象自身
2、析构顺序(与构造顺序相反)
对象自身→成员对象类→基类
static int nIndex = 1; class CMember { public: CMember() { printf("%d CMember construct\n", nIndex++); } ~CMember() { printf("%d CMember destruction\n", nIndex++); } }; class CBase { public: CBase() { printf("%d CBase construction\n", nIndex++); } ~CBase() { printf("%d CBase destruction\n", nIndex++); } }; class CTEST : public CBase { //Method: public: CTEST() { printf("%d CTEST construct\n", nIndex++); } ~CTEST() { printf("%d CTEST destruction\n", nIndex++); } CMember m_oMember; //测试成员对象构造和析构顺序 };
测试代码:
int main(int argc, char* argv[]) { if (true) { CTEST oTest; } getchar(); return 0; }
运行结果:
1、构造顺序
基类→成员对象类→对象自身
2、析构顺序(与构造顺序相反)
对象自身→成员对象类→基类
相关文章推荐
- C++浅析——继承类中构造和析构顺序
- C++虚函数和虚继承浅析
- 深度探索c++对象模型之虚继承的对象构造
- C++学习笔记:3.3.4 继承和组合混搭情况下,构造和析构调用顺序
- C++构造和析构顺序
- C++入门学习:继承中的构造和析构以及同名成员情况
- C++ 类继承与对象赋值 情况下 成员变量的覆盖 浅析
- c++多态之继承3-派生类的构造次序
- C++ 类的相关知识 构造,析构,继承与多态
- C++继承之构造析构函数调用
- C++ 继承的构造与析构
- C++虚函数和虚继承浅析
- 笨鸟先飞学编程系列之八 浅析C++的继承与多态性
- C++继承时构造与析构函数以及using,继承时的遮蔽浅谈
- C++学习笔记--继承中的构造与析构
- C++继承体系下构造的执行顺序
- 浅析C++中的is-a和has-a关系(公有继承、包含、私有继承)
- C++ 继承和组合混搭下的构造和析构调用原则
- C++继承浅析
- C++带有虚函数的单继承类的构造过程探索,msvc和gcc编译器