【发布时间】:2014-11-19 21:30:28
【问题描述】:
假设我有一个类 Person 和它的子类 Boy。我想在 Boy 中包含 Person 没有 的方法,并且能够通过以下方式通过多态性使用:
Boy john = Boy();
Person* personP = &john;
personP->boyFunction();
我尝试将 Person 中的函数声明为 virtual 和 =0(在头文件中)。问题是我有多个函数,比如这个,我不希望所有子类都定义所有这些函数。
假设我想拥有多个不同的 Person 子类,每个子类都有自己独有的功能,那么如何巧妙而安全地完成这项工作?
【问题讨论】:
-
Read this。你不能“整齐而安全地”违反法律,根本没有这样的选择。
-
如果每个函数都是自己独有的,为什么不使用普通的旧多态和虚函数呢?
class Person {public: virtual void Foo()=0;};,class Boy {public: virtual void Foo();};,class Girl {public: virtual void Foo();};
标签: c++ inheritance polymorphism