c++为什么使用初始化列表效率高

class CSub2
{
public:
    CSub2()
    {
        cout << "默认构造函数:" <<  this <<endl;
    }

    CSub2(int x) : m_x(x)
    {
        cout << "构造函数:" << m_x << ":" << this << endl;
    }

    CSub2& operator= (const CSub2& t)
    {
        cout << "赋值操作符:" << t.m_x << ":" << this << ":" << &t << endl;
        return *this;
    }

    virtual void test()
    {

    }
    int m_x;
};


class CSub
{
public:
    CSub() : a(10)
    {
        b = CSub2(18);
    }

    virtual void test()
    {

    }

    CSub2 a;
    CSub2 b;
};




int main()
{
    CSub tt;
    cout << &tt.a << endl;
    cout << &tt.b << endl;

    return 0;
}

 执行结果:

构造函数:10:0x0047FAA0

默认构造函数:0x0047FAA8

构造函数:18:0x0047f8ec

赋值操作符:18:0x0047FAA8:0x0x0047f8ec

0x0047FAA0

0x0047FAA8

posted @ 2021-03-31 21:03  唯一诺  阅读(392)  评论(0编辑  收藏  举报