读书人

虚基类(虚函数)的一个子类定义基类对

发布时间: 2012-03-13 11:21:10 作者: rapoo

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

父类定义

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~

很神奇吧~~~

读书人网 >C++

热点推荐