在 final 类中不应声明虚函数
6.8.13 ID_virtualInFinal
final 类不再产生派生类,其中的虚函数也不会再被重写,故不应声明虚函数。
示例:
class A final {
public:
virtual int foo(); // Non-compliant, a new virtual function in a final class
};
class B {
public:
virtual int bar();
};
class C final: public B {
public:
virtual int bar(); // Non-compliant, use keyword ‘override’ or ‘final’
};
依据
ISO/IEC 14882:2011 9(3)
ISO/IEC 14882:2017 12(3)