【发布时间】:2011-12-25 05:24:20
【问题描述】:
在基类中定义通用虚函数的好处是我们不必在派生类中重新定义它们。
即使我们在基类本身中定义了纯虚函数,我们仍然必须在派生类中定义它们。
#include <iostream>
using namespace std;
class speciesFamily
{
public:
virtual void numberOfLegs () = 0;
};
void speciesFamily :: numberOfLegs ()
{
cout << "\nFour";
}
class catFamily : public speciesFamily
{
public:
void numberOfLegs ()
{
speciesFamily :: numberOfLegs ();
}
};
这肯定看起来很花哨,但是在任何情况下在基类本身中定义纯虚函数是有益的吗?
【问题讨论】:
-
请注意,那里的答案有一些共同点。除了析构函数的特殊情况,基类中的实现只会被派生类显式调用。它也可以有一个不同的名称,所以“好处”就是它与预期调用它的覆盖具有相同的名称,从而避免像
_default或_base这样的疣。
标签: c++ pure-virtual