【发布时间】:2015-11-13 05:19:20
【问题描述】:
假设我有一个带有虚拟方法的类和两个以不同方式定义该方法的派生类:
class animal
{
virtual bool isBlack() = 0;
};
class blackAnimal : public animal
{
virtual bool isBlack() { return true; }
};
class stripedAnimal : public animal
{
virtual bool isBlack() { return false; }
};
现在我想从虚拟基类派生另一个类,并创建两个新的子类型:
class bigCat : public animal {}; // isBlack() is still pure virtual
// I wish that this worked and that isBlack would return true
class jaguar : public bigCat, public blackAnimal {};
// I wish that this worked and that isBlack would return false
class tiger : public bigCat, public stripedAnimal {};
我该怎么做。当我这样做时,animal 的 isBlack() 方法保持虚拟状态。当我从定义animal::isBlack() 的类派生时,我希望isBlack 成为一个有效的虚函数。
【问题讨论】:
标签: c++ inheritance