首页 > 其他 > 详细

有无显式初始化列表对构造函数和析构函数的影响

时间:2015-03-25 14:01:23      阅读:270      评论:0      收藏:0      [点我收藏+]

先看看有显式初始化列表的例子:

#include <iostream>

using namespace std;

class A
{
public:
    A(){cout << "A" << endl;}
    ~A(){cout << "~A" << endl;}
};

class B:public A
{
public:
    B(A& a):_a(a)
    {
        cout << "B" << endl;
    }
    ~B()
    {
        cout << "~B" << endl;
    }
private:
    A _a;
};

int main()
{
    A a;
    B b(a);
    return 0;
}
看看结果是什么?

技术分享


在看看未显式初始化的例子:

#include <iostream>

using namespace std;

class A
{
public:
    A(){cout << "A" << endl;}
    ~A(){cout << "~A" << endl;}
};

class B:public A
{
public:
    B(A& a)
    {
        _a = a;
        cout << "B" << endl;
    }
    ~B()
    {
        cout << "~B" << endl;
    }
private:
    A _a;
};

int main()
{
    A a;
    B b(a);
    return 0;
}
看看结果是什么:

技术分享
看到不同了吗?嘿嘿,讨论一下吧

有无显式初始化列表对构造函数和析构函数的影响

原文:http://blog.csdn.net/xumesang/article/details/44620095

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!