功能:
-
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.