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/
  • 相关阅读:
    Python基础实例001:数字组合问题
    Python集合
    标量、向量、矩阵、张量
    re模块函数之search
    Python常用字符串操作
    Python基础之元组
    Bai, IEEE 2019
    词嵌入
    RNN 训练时梯度爆炸和梯度消失的理解
    OCR 综述
  • 原文地址:https://www.cnblogs.com/organic/p/5005655.html
Copyright © 2011-2022 走看看