| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1466 人关注过本帖
标题:[原创][求助]类,派生类,虚函数,构造函数在一段代码中的执行顺序
取消只看楼主 加入收藏
szd1105
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-11-25
收藏
 问题点数:0 回复次数:3 
[原创][求助]类,派生类,虚函数,构造函数在一段代码中的执行顺序
#include "iostream,h"
class I1
{
public:
virtual void func()
{
cout << "I1" << endl;
}
};

class B1
{
public:
B1 (int i)
{
cout <<"B1" << endl;
}
};

class B2 : public I1
{
public:
virtual void func()
{
cout << B2 << endl;
};
B2 (int i)
{
cout << "B2" << i << endl;
func() ;
};

class D1 : public B1 , public virtual B2
{
public:
D1() : B1 (1) , b1(2) , B2 (3) , b2 (4)
{
}
B2 b2;
B1 b1;
};

int main()
{
D1 d;
return 0;
}
请问这段代码输出结果的顺序是什么
搜索更多相关主题的帖子: 函数 派生类 构造 顺序 
2006-12-02 13:31
szd1105
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-11-25
收藏
得分:0 
谢谢你的解说 ,我能够看明白

好象第3个结果和最后一个是B11 , B12.
2006-12-02 16:02
szd1105
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-11-25
收藏
得分:0 
如果《之后用2初始化b1,调用B1::B1(int i),输出B1;》你写的这段文字输出的结果是B1,那么用2初始化就显的多余了
2006-12-02 16:21
szd1105
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-11-25
收藏
得分:0 
如果是这样的话,那么不管《D1() : B1 (1) , b1(2) , B2 (3) , b2 (4)》这中的B1初始化为(多少),结果始终为B1
请问是不是
2006-12-02 16:49
快速回复:[原创][求助]类,派生类,虚函数,构造函数在一段代码中的执行顺序
数据加载中...
 
   



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

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