final:有两种情况,情况1修饰类,该类不在允许被继承,情况2修饰虚函数,该虚函数不被允许被重写
情况1类继承final报错
class MaTask {/*..*/} final;
class PrioritizedTaskManager: public MaTask {
}; //compilation error: base class MaTask is final
情况2虚函数重写报错
class A
{
pulic:
virtual void bassfun() const;
};
class B: A
{
pulic:
void bassfun() const override final; //OK
};
class C: B
{
pulic:
void bassfun()const; //error, B::func is final
};