我试过的两个编译器都接受这种语法,但我在某处读到纯虚拟析构函数定义应该始终在类之外。
我编译的代码:

class AbstractBase
{
public:
    virtual ~AbstractBase() = 0
    {}

    virtual void foo()
    {
        ...
    }
};

最佳答案

根据标准,您不能在类体内定义纯虚函数。
不过,一些编译器确实支持将此功能作为扩展。请注意,使用此扩展将使您的代码在不同编译器之间不可移植。

引用:

C++03 10.4 第 2 段:

关于c++ - 我是否必须在类体之外定义纯虚拟析构函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12577364/

10-11 14:04