功能:
-
final作用于类名之后,表示这个类不能被继承

-
final作用于一个类的虚函数之后,表示这个方法不能被子类重写:

#include <iostream>
#include <vector>
using namespace std;
// final 修饰父类后,不可被继承
// class A final{
class A {
public:
// final 修饰虚函数后,派生类B::fun() 不可被重写
// virtual void func() final {
virtual void func() {
cout << "A called." << endl;
};
};
class B: public A {
public:
virtual void func() {
cout << "B called." << endl;
};
};
int main() {
A* p = new B();
p->func();
return 0;
}
输出
B called.
本文介绍了C++中final关键字的用法,final用在类名后禁止继承,用在虚函数后阻止子类重写该方法。示例代码展示了final如何阻止了类B对类A中func()函数的重写,即使对象通过基类指针调用,依然执行基类的实现。
1652

被折叠的 条评论
为什么被折叠?



