| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 764 人关注过本帖, 1 人收藏
标题:本类、父类以及本类中数据成员(也是用户自定义类)的构造及析构函数的调用 ...
取消只看楼主 加入收藏
crazycoder
Rank: 1
来 自:长春
等 级:新手上路
帖 子:36
专家分:0
注 册:2008-11-20
收藏(1)
 问题点数:0 回复次数:1 
本类、父类以及本类中数据成员(也是用户自定义类)的构造及析构函数的调用顺序
对于本类、父类以及本类中数据成员(也是用户自定义类),在定义一个本类的对象时,程序是先调用父类的构造
函数,再调用数据成员的构造函数,最后再调用本类的构造函数;析构函数调用顺序是,先本类析构函数,再数据
成员的析构函数,最后父类的析构函数。

以如下程序为例:
#include <iostream>
#include <string>
using namespace std;

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

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

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

int main()
{
    C c;
    return 0;
}
在我的机器上,上述程序的输出结果是:
B::B()
A::A()
C::C()
C::~C()
A::~A()
B::~B()
搜索更多相关主题的帖子: 父类 定义 构造 函数 顺序 
2008-11-21 17:57
crazycoder
Rank: 1
来 自:长春
等 级:新手上路
帖 子:36
专家分:0
注 册:2008-11-20
收藏
得分:0 
忘记了的话不妨过来看一下,高手勿进啦。。。

Breath deeply, three times a day, hold on for one year----我要说的是:坚持真的是件很难的事。
2008-11-22 13:59
快速回复:本类、父类以及本类中数据成员(也是用户自定义类)的构造及析构函数的 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.060782 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved