C++11 最终类和最终成员函数

C++11 最终类和最终成员函数,c++11,C++11,假设我有基类: struct Base { virtual void foo(); }; 派生类是finalstruct A final:public Base。将成员函数设置为final是否合理?我在几个地方见过,例如 struct A final : public Base { void foo() final; } 我不确定它在这种情况下是否提供了任何值,就好像类本身是final我猜默认情况下所有成员函数也是final。我错过什么了吗?有什么指导原则吗?如果结构或类(a

假设我有基类:

struct Base
{
    virtual void foo();
};
派生类是final
struct A final:public Base
。将成员函数设置为final是否合理?我在几个地方见过,例如

struct A final : public Base {
    void foo() final;
}

我不确定它在这种情况下是否提供了任何值,就好像类本身是
final
我猜默认情况下所有成员函数也是
final
。我错过什么了吗?有什么指导原则吗?

如果结构或类(
a
在您的情况下)是
final
,您不能声明另一个继承它的结构或类。因此,也不需要将任何方法声明为
final


也许在某些地方这是一个惯例,需要明确的是,这个方法也不能被重写(就像对结构的
final
的“提醒”)

因为你的结构/类是final的,派生成员不可能存在,我想说,在这种情况下,将函数声明为final只是个人偏好。