读书人

*c++*|看程序写结果哪位高手对给哪位

发布时间: 2012-03-24 14:00:46 作者: rapoo

**********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的了

我这样理解的

读书人网 >C++

热点推荐