在C++中,final
关键字主要用于以下两个方面:
-
类(class)声明:当在类声明后加上
final
关键字时,该类被标记为最终类。这意味着这个类不能再被其他类继承。如果尝试继承一个被声明为final
的类,编译器会产生错误。class BaseClass final { // Class implementation }; // 会产生编译错误 class DerivedClass : public BaseClass { // Class implementation };
-
虚函数(virtual function)声明:当在虚函数声明后加上
final
关键字时,该虚函数被标记为最终函数。这意味着这个函数不能在派生类中被重写(override)。如果尝试在派生类中重写一个被声明为final
的虚函数,编译器会产生错误。class Base { public: virtual void foo() final { // Implementation } }; class Derived : public Base { // 会产生编译错误 void foo() override { // Implementation } };
final
关键字用于控制继承关系和函数重写行为,确保基类和派生类之间的关系符合预期,防止意外的继承或重写行为。