zoukankan      html  css  js  c++  java
  • C++浅析——继承类中构造和析构顺序

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

    static        int        nIndex = 1;
    
    class CMember
    {
    public:
            CMember()
            {
                    printf("%d CMember construct
    ", nIndex++);
            }
    
            ~CMember()
            {
                    printf("%d CMember destruction
    ", nIndex++);
            }
    };
    
    class CBase
    {
    public:
            CBase()
            {
                    printf("%d CBase construction
    ", nIndex++);
            }
            ~CBase()
            {
                    printf("%d CBase destruction
    ", nIndex++);
            }
    };
    
    class CTEST : public CBase
    {
    
            //Method:
    public:
            CTEST()
            {
                    printf("%d CTEST construct
    ", nIndex++);
            }
    
            ~CTEST()
            {
                    printf("%d CTEST destruction
    ", nIndex++);
            }
            
            CMember m_oMember;                //测试成员对象构造和析构顺序
    };

    测试代码:

    int main(int argc, char* argv[])
    {
    	if (true)
    	{
    		CTEST	oTest;
    	}
    	
    	getchar();
    	return 0;
    }

    运行结果:

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

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

    本文为博主原创文章,如需转载请说明转至http://www.cnblogs.com/organic/
  • 相关阅读:
    NOIP模拟测试17
    C++11下的关键字
    Tyvj 1518 CPU监控(线段树)
    单身三连之三
    论求解线性方程
    单身三连之二
    单身三连之一
    20190719总结
    卡常
    论突变为零(不定更新)
  • 原文地址:https://www.cnblogs.com/organic/p/5005655.html
Copyright © 2011-2022 走看看