1.3、final标识符的作用是什么?
C++中final
标识符的作用主要体现在两个方面,体现了对继承和多态行为的严格控制:
防止类被继承
当final
用于类声明时(例如class A final { ... };
),表示该类是最终类,不能被任何其他类继承。如果尝试继承该类,编译器会报错。这种设计可以防止类的继承滥用,保护类的设计完整性和封装性,避免因继承带来的复杂性和潜在错误。
防止虚函数被重写
当final
用于虚函数声明时(例如virtual void func() final;
),表示该虚函数在派生类中不能被重写(override
)。如果派生类试图重写该函数,编译器同样会报错。这保证了基类中关键函数的实现不被意外修改,提高代码的稳定性和可靠性。
简洁示例
class Base final { // 该类不能被继承
public:
virtual void foo() final { // 该虚函数不能被重写
// 实现
}
};
// 以下代码均会导致编译错误
// class Derived : public Base {};
// class Another : public Base {
// void foo() override;
// };
这样,final
关键字就清晰地表达了“不可再继承”和“不可再重写”的设计意图,是C++11引入的重要语言特性之一。
本文首发于【讳疾忌医-note】公众号,未经授权,不得转载。
(加入我的知识星球,免费获取账号,解锁所有文章。)
阅读剩余
版权声明:
作者:讳疾忌医-note
链接:https://www.1217zy.vip/archives/1163
文章版权归作者所有,未经允许请勿转载。
THE END