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

虚基类(虚函数)的一个子类定义基类对象,并在相应函数中调用父类对象的该函数解决办法

2012-03-13 
虚基类(虚函数)的一个子类定义基类对象,并在相应函数中调用父类对象的该函数有一个父类,其中定义了纯虚函

虚基类(虚函数)的一个子类定义基类对象,并在相应函数中调用父类对象的该函数
有一个父类,其中定义了纯虚函数。
该父类的其中一个子类的该纯虚函数的实现中,又声明了其父类的一个对象,并调用该函数。那到底是哪里实现的呢?

父类定义

C/C++ code
Class BaseClass{public...virtual void func()=0;...}


其中一个子类的定义
C/C++ code
class SubClass: public BaseClass{public:...void func();...}实现void SubClass::func() {....class BaseClass *BaseObj = BaseObj1; // BaseObj1 是该子类定义的一个私有变量:class BaseClass * BaseObj1;BaseObj->func();  // 不明白啊!...}


不清楚最后的函数是调用哪里的。

[解决办法]
比如你现在可以写个 AnotherSubClass, 
实现 func() { cout << "do new things"; }

这样只要你SubClass的 BaseObj1 指向这个新 的AnotherSubClass对象
你在不改动 原先 SubClass 代码的情况下
输出的是 do new things~

很神奇吧~~~

热点排行