final&&override标识符
final
final作用: 限制某个类不能被继承,或者某个虚函数不能被重写
class A{
//限制虚函数不能被重写,适用场景通常是一些老接口(避免重写)
virtual void foo() final;
}
class B final : public A{
}
class C final{
}
//上述两种方式B和C都不能被继承,不管他们是不是子类
override
确保子类中声明的重写函数和父类的虚函数有相同的签名,同时是明确的表示将会重写父类的虚函数(防止本来想重写父类虚函数而变成重载)。保证重写虚函数的正确性&&提高代码可读性
class A {
virtual void func() {}
}
class B : public A{
//显式重写
void func() override {
//...
}
}