最终类和最终成员函数

问题描述 投票:0回答:1

说我有基类:

struct Base
{
    virtual void foo();
};

并且派生类是最终的struct A final : public Base。也使成员函数final有意义吗?我已经在几个地方见过,例如

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

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

c++11
1个回答
1
投票

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

也许这是在某些地方的约定,需要明确的是,也不能重写此方法(仅作为对结构final的“提醒”)。

© www.soinside.com 2019 - 2024. All rights reserved.