c++中的final说明符

final是c++11引入的说明符,可以修饰在类或者类成员函数尾部。

final修饰类时,表示该类不能被继承。

cpp 复制代码
class A final 
{
};

上例表明,类A是一个不能被继承的类。

cpp 复制代码
class A {
public:
  virtual void bar();
};

class B final: public A {
public:
  void bar() override; 
};

类B继承了类A,类B是一个不能被继承的类,因为它有final修饰符。

final修饰类成员函数时,声明了成员函数是一个虚函数,且该虚函数不可在派生类中被覆盖。

cpp 复制代码
class A {
public:
  virtual void bar();
};

class B : public A {
public:
  void bar() override final; 
};

类B继承了类A,类B也可以被其它类继承。但是类B中的成员函数bar(),不能被它的子类重写,因为该函数有final修饰。

相关推荐
Elastic 中国社区官方博客1 分钟前
从向量到关键词:在 LangChain 中的 Elasticsearch 混合搜索
大数据·开发语言·数据库·elasticsearch·搜索引擎·ai·langchain
学编程的闹钟2 分钟前
C语言GetLastError函数
c语言·开发语言·学习
liu****6 分钟前
4.镜像仓库详解
c++·docker·云原生·容器·kubernetes·镜像\
梵刹古音6 分钟前
【C++】多态
开发语言·c++
hello 早上好18 分钟前
07_JVM 双亲委派机制
开发语言·jvm
Maguyusi36 分钟前
go 批量生成c++和lua proto文件
c++·golang·lua·protobuf
前端程序猿i37 分钟前
第 8 篇:Markdown 渲染引擎 —— 从流式解析到安全输出
开发语言·前端·javascript·vue.js·安全
kronos.荒39 分钟前
滑动窗口:寻找字符串中的字母异位词
开发语言·python
_codemonster1 小时前
java web修改了文件和新建了文件需要注意的问题
java·开发语言·前端
shentuyu木木木(森)1 小时前
单调队列 & 单调栈
数据结构·c++·算法·单调栈·单调队列