读书人

求教关于承袭与引用

发布时间: 2012-09-11 10:49:03 作者: rapoo

求教关于继承与引用
求教给位下面这个程序的输出结果,并解释

#include <iostream>
using namespace std;
class BC
{
public:
void fun(){cout<<"bc"<<endl;}
};
class DC:public BC
{
public:
void fun(){cout<<"dc"<<endl;}
};
int main()
{
BC *pbc;
DC dc;
pbc=&dc;
pbc->fun();
return 0;
}


我觉得这个程序运行结果应该是DC的啊,因为主函数里pbc=&dc的时候,pbcde 取址dc了啊,这样他不就指向DC的fun了吗?
可是运行结果为什么是bc呢?
C+新手,请大神们详细解释啊,谢谢了!!


[解决办法]

探讨

引用:

非虚函数,调用的时候直接按对象类型/指针类型/引用类型调用
甭管指针指的是什么,调用函数直接按指针类型调用


哦,是不是说,没有用虚函数,而*pbc是用BC定义的,所以他始终指向BC的对象?

[解决办法]
探讨

引用:

非虚函数,调用的时候直接按对象类型/指针类型/引用类型调用
甭管指针指的是什么,调用函数直接按指针类型调用


哦,是不是说,没有用虚函数,而*pbc是用BC定义的,所以他始终指向BC的对象?

读书人网 >C++

热点推荐