//final,override出现在形参列表以及尾置返回类型之后
#include <iostream>
using namespace std;
struct B{
virtual void f1(int) const;
virtual void f2(int);
void f3(int) final;//出错,final不能修饰非虚函数
};
struct D:B{
void f1(int) const override ;//去掉const将出错,必须和基类中的函数原型一致,否则不能用override来表示覆盖
void f2(int) final;//final说明继承D的派生类中不能覆盖该函数
void f3();
};
struct E:B{
void f2(int);//ok,其直接基类B中该函数没有final说明符
};
struct F:D{
void f2(int);//出错,无法覆盖该函数,原因是其直接基类D中有final说明符
};final表示该虚函数不能被重写,override表示该函数重写了某个虚函数
c++11 final与override说明符
最新推荐文章于 2026-05-06 08:02:56 发布
本文深入探讨了C++中final和override关键字的使用,详细解释了它们在形参列表以及尾置返回类型之后的作用。通过具体代码示例,展示了final如何禁止虚函数的重写,以及override如何标识一个函数覆盖了基类中的虚函数。
563

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



