虚基类(虚函数)的一个子类定义基类对象,并在相应函数中调用父类对象的该函数
有一个父类,其中定义了纯虚函数。
该父类的其中一个子类的该纯虚函数的实现中,又声明了其父类的一个对象,并调用该函数。那到底是哪里实现的呢?
父类定义
- 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~
很神奇吧~~~