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

继承层次中函数调用有关问题

2012-03-30 
继承层次中函数调用问题假设类层次有5层class Base{virtual void function(){}}class D1:public Base{}

继承层次中函数调用问题
假设类层次有5层
class Base{
  virtual void function(){};
};
class D1:public Base{};
class D2:public D1{};
class D3:public D2{
  void function(){};
};
class D4:public D3{};
D4 obj;
D2 *p=&obj;
p->function()会调用第一层的函数还是第四层的函数?

[解决办法]
会调用D4::function()
这就是多态性,根据指针所指的对象类型调用成员函数。
指针指向D4类型的对象,当然调用D4的成员函数fuction(),只不过,这个成员函数从基类继承而来。

热点排行
Bad Request.