标题:继承的运行结果
取消只看楼主
jjg
Rank: 2
等 级:论坛游民
帖 子:67
专家分:42
注 册:2009-8-19
结帖率:46.15%
已结贴  问题点数:20 回复次数:2 
继承的运行结果
继承的运行结果

#include <iostream>
using namespace std;
class data
{
public:
    data(int x)
     {
      data::x=x;
cout<<"data cons."<<endl;
     }

~data(){cout<<"data des."<<endl;}
private:
int x;
};
class base
{
public:
base(int x):d1(x){cout<<"base cons."<<endl;}
~base(){cout<<"base des"<<endl;}
private:
data d1;
};
class derived:public base
{
public:
derived(int x):base(x),d2(x){cout<<"derived cons."<<endl;}
~derived(){cout<<"derived des."<<endl;}
private:
data d2;
};
void main()
{
derived obj(5);
}
结果是这样的:
data cons.//搞不懂怎么会有这行结果
base cons.   
  data cons.
derived cons.
derived des.
data des.
base des.
data des.
我在书上看到这句话:对于派生类的构造函数,在定义对象时构造函数的执行顺序:先执行基类的构造函数,在执行子对象的构造函数,最后执行派生类本身的构造函数。我就搞不懂子对象的构造函数指的是什么呢?能不能用上面那个例子解释一下??

[ 本帖最后由 jjg 于 2009-8-26 10:29 编辑 ]
搜索更多相关主题的帖子: 继承 
2009-08-23 16:30
jjg
Rank: 2
等 级:论坛游民
帖 子:67
专家分:42
注 册:2009-8-19
得分:0 
回复 4楼 blueskiner
子对象的构造函数,基类的构造函数,还有一个派生类本身的构造函数,到底指的是哪一个呢?特别是搞不懂子对象的构造函数..
2009-08-24 20:00
jjg
Rank: 2
等 级:论坛游民
帖 子:67
专家分:42
注 册:2009-8-19
得分:0 
回复 2楼 rockcjw
是啊,那我再编辑一下
2009-08-26 10:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-283512-1-1.html




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

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