虚拟析构函数声明后的覆盖标识符有什么特殊含义吗?
class Base
{
public:
virtual ~Base()
{}
virtual int Method() const
{}
};
class Derived : public Base
{
public:
virtual ~Derived() override
{}
virtual int Method() override // error: marked override, but does not override - missing const
{}
};
在虚拟方法上使用覆盖标识符作为检查很有用:当 Base 虚拟方法实际上没有被覆盖时,编译器将报告错误。
覆盖虚拟析构函数是否也有任何意义/功能?