C++浅析——继承类中构造和析构顺序

来源:互联网 发布:linux大学时候开发 编辑:程序博客网 时间:2024/06/06 13:01

先看测试代码,CTEST 继承自CBase,并包含一个CMember成员对象

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){CTESToTest;}getchar();return 0;}

运行结果:

1、构造顺序
基类→成员对象类→对象自身

2、析构顺序(与构造顺序相反
对象自身→成员对象类→基类

0 0
原创粉丝点击