首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

*c++*|看程序写结果,哪位高手对给哪位高手,尽量不要去试验,最好说出为什么

2012-03-24 
**********c++*************|看程序写结果,谁对给谁,尽量不要去试验,最好说出为什么#includestdio.hclas

**********c++*************|看程序写结果,谁对给谁,尽量不要去试验,最好说出为什么
#include   <stdio.h>
class   B
{

public:
virtual   B*   clone()
{
printf( "b::clone\n ");
return   this;
}
virtual   void   print()
{
printf( "b::print\n ");
}
}b,*pb   =   NULL;

class   D:public   B{
public   :
virtual   D*   clone(){
printf( "d::clone\n ");
return   this;
}
virtual   void   print(int   x   =   0)
{
printf( "d::print\n ");
}
}d,*pd;


void   main()
{

pb   =   &b;
pb-> clone();
pb-> print();
pb   =   &d;
pb-> clone();
pb-> print();
}

[解决办法]
b::clone
b::print
d::clone
b::print

?
类和结构体应该没有区别吧
[解决办法]
呵呵 对于print函数, 根本就没有动态联编
也就没有应用多态
因为两个print函数不一样
一个没有参数一个有参数
是两个不同的函数

pb-> print();没有多态可用, 就用d的了

我这样理解的

热点排行