是否可以声明从anther类(Bar
)BarBase
继承的类(final
)?或者当一个类继承自另一个类(使用虚方法)时,C ++是否限制它声明各个方法final
。
class BarBase
{
public:
virtual void DoSomething() = 0;
};
class Bar : public BarBase final // not legal to add 'final' here, why?
{
public:
void DoSomething(); final // Legal to add 'final' here, but doing it for every method is less than ideal.
};
答案 0 :(得分:4)
作为评论中的状态,关键字final
放错了位置。正确的语法是:
class Bar final : public BarBase
{
// ...
};