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)  


  • 相关阅读:
    异或运算的运用
    HDU1251(统计难题)
    待解决题目
    tarjan算法模板
    FZU1465
    边双联通分量(构造边双联通图)
    UVa 12558
    codeforce Error Correct System
    codeforce The Art of Dealing with ATM
    ~0u >> 1
  • 原文地址:https://www.cnblogs.com/lxjshuju/p/7400570.html
Copyright © 2011-2022 走看看