我们是否必须在直接派生类中强制定义 C++ 中的纯虚函数?还是我们可以避免它,以便我们只能在具体类中定义它?这是如何实现的?
问问题
664 次
3 回答
3
没有人强迫你实现纯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;
};
于 2013-01-03T17:43:49.880 回答
1
在您开始创建该类的实际对象之前,绝对不需要在该类中定义任何纯虚函数。
抽象类旨在用作其他类的基础。抽象类层次结构可以任意深,这意味着您不需要在直接后代中定义纯虚方法。
于 2013-01-03T17:44:52.497 回答
1
如果有一些虚拟纯方法没有实现,那么派生类是抽象的。如果要实例化该方法,则必须在某个派生类中实现该方法。
于 2013-01-03T17:45:32.277 回答