纯虚函数不应该有主体,但我刚刚注意到编译器接受了以下代码:

class foo
{
    virtual void dummy() = 0
    {
        cout << "hello";
    }
};

那么,为什么允许纯虚函数具有主体?另外,即使函数有主体,类仍然无法实例化,这是为什么?

最佳答案

纯虚函数可以有一个函数体,但你将它们声明为纯虚函数这一事实正是说派生实现是 需要

您可以从派生方法(使用显式 BaseClass::method() )执行纯虚拟方法,但您仍然必须提供实现。

不能用未被覆盖的纯虚方法实例化一个类 是纯虚声明的要点 。换句话说,声明一个方法纯虚的想法是为了确保程序员不会忘记提供它的实现。

关于c++ - 将主体添加到 C++ 中的纯虚拟/抽象函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20160173/

10-11 22:55