标题:运行结果
只看楼主
jjg
Rank: 2
等 级:论坛游民
帖 子:67
专家分:42
注 册:2009-8-19
结帖率:46.15%
已结贴  问题点数:20 回复次数:4 
运行结果
程序代码:
#include <iostream>
using namespace std;
class base
{
public:
base(int i)
{
x=i;
cout<<"constructor of base."<<endl;
}
~base(){cout<<"destructor of base."<<endl;}
viod show(){cout<<"x="<<x<<endl;}
private:
int x;
};
class derived:public base
{

public:
derived(int i):base(i),d(i){cout<<"constructor of derived."<<endl;}
private:
base d;
};
void main()
{
derived obj(5);
obj.show();
}




运行结果:
constructor of base.
constructor of base.//怎么有两遍?不懂
constructor of derived.
x=5
destructor of base.
destructor of base.
搜索更多相关主题的帖子: 运行结果 
2009-08-23 16:55
lintaoyn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:605
专家分:2489
注 册:2009-4-8
得分:5 
derived(int i):base(i),d(i)等于derived(int i):base(i){...}加derived(int i):d(i){...}

迭代的是人,递归的是神。
2009-08-23 17:11
rockcjw
Rank: 2
等 级:论坛游民
帖 子:28
专家分:32
注 册:2009-8-23
得分:5 
derived(int i):base(i),d(i){cout<<"constructor of derived."<<endl;}
这句给X赋了两次值 所以会出现两次cons  结果也出现了两次des
2009-08-23 17:53
flyingcloude
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:6
帖 子:598
专家分:1512
注 册:2008-1-13
得分:5 
derived(int i):base(i),d(i){cout<<"constructor of derived."<<endl;}
derived(int i):base(i)是子类的构造函数显示调用基类的构造函数,打印一次constructor of base.
d(i) 是derived中的base d进行初始化,所以调用构造函数base(int i) ,又打印一次constructor of base.

你能学会你想学会的任何东西,这不是你能不能学会的问题,而是你想不想学的问题
2009-08-23 18:46
ly861014
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:66
专家分:177
注 册:2008-10-28
得分:5 
回复 楼主 jjg
4楼正解
2009-08-23 22:15



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




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

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