中易网

关于C++类的继承的一个问题

答案:1  悬赏:20  
解决时间 2021-05-12 15:06

#include <iostream.h>

class base{
int x;
public:
base(int i)
{ x=i;
  cout<<"构造base类, x="<<x<<endl;
}
~base()
{ cout<<"析构base类, x="<<x<<endl;
}
void show()
{ cout<<"x="<<x<<endl;
}
};
class derive:public base{
int y;
base d;
public:
derive(int i,int j,int k):base(i),d(j)
{ y=k;
  cout<<"构造derived类, y="<<y<<endl;
}
~derive()
{ cout<<"析构derived类, y="<<y<<endl;
}
};

void main()
{
derive obj(1,2,3);
obj.show();
}

我不明白运行结果中的第一行、第四行、第七行

构造base类, x=1

构造base类, x=2

构造derived类, y=3

x=1

析构derived类, y=3

析构derived类, x=2

析构derived类, x=1

 

最佳答案

构造base类, x=1,这是因为派生类构造的时候必然需要先调用基类的构造函数。derive(int i,int j,int k):base(i),d(j)指明了需要调用base(int i)这个构造函数。


x=1,调用show方法,由于派生类里面没有show方法,就调用基类的show方法。派生类继承基类的方法。


析构derived类, x=1,由于派生类析构的时候必然最后要调用基类的析构方法,所以显示了这句。

我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
夏新N810QQ登陆超时问题如何解决?
麻栗镇中心社区居民委员会在哪里啊,我有事要
lady gaga <born this way>为什么没有这歌???
如何将信息发出去
哪里有卖报检员的书
原·味的档案,辨别,还有Connie Lai
心理专业实用吗
我的手机QQ是MTK_ipqq_145,登陆提示指令错误
巧连智幼教我想知道这个在什么地方
广西一区DNF高手来
武魂是什么??
海南考生今年文科考了663分,在广州抱哪间大
天津河北区大江南里有什么宽带
cmmb信号什么时候能覆盖到县级地区?要具体时
振东烧烤在什么地方啊,我要过去处理事情
推荐资讯
《啊Q正传》中吴妈喜不喜欢啊Q?
各位大哥大姐.帅哥美女们,请教教小弟联通怎样
玉兰油怎分真假
天下贰已创建的人物名可以改吗,我在四川可以
被褥里放屁,打一个成语
2011黑龙江高考一表必须走么
爱情亲情怎么选择呢?
日语二级难过吗?要看哪些书?
五二号有没有济南到天水的火车票
5230等机型可以用的ovi免费地图怎么离线用啊
QQ飞车中如何才能百分百得到圣光使者
爱你个人,到底要为她负出什么?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?