| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 458 人关注过本帖
标题:[讨论][求助]这个有点复杂,有点难.
只看楼主 加入收藏
blueboy82006
Rank: 5Rank: 5
来 自:幻想世界
等 级:贵宾
威 望:16
帖 子:1227
专家分:57
注 册:2007-7-23
结帖率:0
收藏
 问题点数:0 回复次数:2 
[讨论][求助]这个有点复杂,有点难.

我也就学了这么点东西,这个程序就都弄到一起去了,
感觉涉及的很多,了解一些继承,那个虚函数不是太明白,
因为书上没有讲太多,
运行结果:9ss9s
对于结果中的第三个还有最后一个不是太明白,
希望有高手能给详细讲解一下,
不胜感激!

#include<iostream>
using namespace std;
class A
{
int a;
public:
A():a(9){}
virtual void print() const {cout<<a;}
};
class B:public A
{
char b;
public:
B(){b='s';}
void print() const {cout<<b;}
};
void show(A &x){x.print();}
int main()
{
A d1,*p;
B d2;
p=&d2;
d1.print();
d2.print();
p->print();
show(d1);
show(d2);
return 0;
}
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
救命啊!

2007-08-28 21:14
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
当通过基类的指针或者引用调用虚函数时,发生动态绑定,调用的实际函数是所引用或所指对象类型定义的。


p->print();
show(d1);
show(d2);

都满足上面这句话!

Fight  to win  or  die...
2007-08-29 00:43
blueboy82006
Rank: 5Rank: 5
来 自:幻想世界
等 级:贵宾
威 望:16
帖 子:1227
专家分:57
注 册:2007-7-23
收藏
得分:0 
哦,谢了,
不过太高深,
慢慢理解吧~

2007-08-29 07:16
快速回复:[讨论][求助]这个有点复杂,有点难.
数据加载中...
 
   



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

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