zoukankan      html  css  js  c++  java
  • C++系统自己主动生成默认构造函数的情况

    (1) 基类存在默认构造函数

    class CBaseClass
    {
    public:

    CBaseClass()
    {
    m_i = 0;
    }

    private:

    int m_i;
    };


    class CDriveClass: public CBaseClass
    {
    public:

    void func()
    {
    }

    private:

    };

    (2) 成员变量存在默认构造函数

    class CTestClass
    {
    public:

    CTestClass()
    {
    m_i = 1;
    }

    private:

    int m_i;
    };

    class CDriveClass
    {
    public:
     void func()
    {
    }

    private:

    CTestClass mTestClass;
    };

    (3) 存在虚函数:初始化虚函数指针

    class CDriveClass: virtual public CBaseClass  //: public CBaseClass
    {
    public:

     void func()
    {
    }

    };

    (4) 存在虚基类:初始化虚基类指针

    class CBaseClass
    {
    };


    class CDriveClass: virtual public CBaseClass
    {
    public:

    void func()
    {
    }
    };


    详细能够查看反汇编代码:Visual Stdio 2010编译器中:Debug->windows->Disassembly

    --汇编代码

    CDriveClass d;
    002613DE  push        1  
    002613E0  lea         ecx,[d]  
    002613E3  call        CDriveClass::CDriveClass (261136h)  


  • 相关阅读:
    1767:字符合并
    成绩单
    floj 2264
    floj 2265 【lxs Contest #141】航海舰队
    CF932D Tree
    1745:分组
    1744:跳台阶
    Xamarin.Forms之跨平台性能
    Xamarin.Forms之部署和测试(性能)
    Xamarin.Forms数据绑定
  • 原文地址:https://www.cnblogs.com/lxjshuju/p/7400570.html
Copyright © 2011-2022 走看看