避免在直接派生类中用c ++定义纯虚函数?

时间:2013-01-03 17:42:22

标签: c++ oop visual-c++

我们是否必须在直接派生类中强制定义c ++中的纯虚函数?或者我们可以避免它,以便我们只能在具体的类中定义它?这是如何实现的?

3 个答案:

答案 0 :(得分:4)

没有人强迫您实现纯virtual函数,因此您不必这样做。你的课程将是抽象的。在派生类中,只需将声明保留或将其重新声明为虚拟纯。

struct Base
{
   virtual void foo() = 0;
};

//this is OK, X is abstract
struct X : Base
{
};

//this is also OK, redundant, and Y is abstract
struct Y : Base
{
   virtual void foo() = 0;
};

答案 1 :(得分:1)

在开始创建该类的实际对象之前,绝对不需要在类中定义任何纯虚函数。

抽象类旨在作为其他类的基础。抽象类层次结构可以任意深入,这意味着您不需要在直接后代中定义纯虚方法。

答案 2 :(得分:1)

如果没有实现某些虚拟纯方法,则派生类是抽象的。如果要实例化它,必须在某个派生类中实现该方法。