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();
};
派生类是finalstruct A final:public Base
。将成员函数设置为final是否合理?我在几个地方见过,例如
struct A final : public Base {
void foo() final;
}
我不确定它在这种情况下是否提供了任何值,就好像类本身是
final
我猜默认情况下所有成员函数也是final
。我错过什么了吗?有什么指导原则吗?如果结构或类(a
在您的情况下)是final
,您不能声明另一个继承它的结构或类。因此,也不需要将任何方法声明为final
也许在某些地方这是一个惯例,需要明确的是,这个方法也不能被重写(就像对结构的
final
的“提醒”)因为你的结构/类是final的,派生成员不可能存在,我想说,在这种情况下,将函数声明为final只是个人偏好。