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修饰。

相关推荐
瓦特what?1 分钟前
插 入 排 序
开发语言·c++
『往事』&白驹过隙;11 分钟前
C/C++中的格式化输出与输入snprintf&sscanf
linux·c语言·c++·笔记·学习·iot·系统调用
Je1lyfish14 分钟前
CMU15-445 (2026 Spring) Project#1 - Buffer Pool Manager
linux·数据库·c++·后端·链表·课程设计·数据库架构
m0_5312371720 分钟前
C语言-初始化赋值,函数,变量的作用域与生命周期
c语言·开发语言
张3蜂25 分钟前
Python venv 详解:为什么要用、怎么用、怎么用好
开发语言·python
zyeyeye29 分钟前
自定义类型:结构体
c语言·开发语言·数据结构·c++·算法
火龙果研究院37 分钟前
在CentOS上安装Python 3.13需要从源码编译
开发语言·python·centos
俩娃妈教编程1 小时前
2023 年 03 月 二级真题(1)--画三角形
c++·算法·双层循环
invicinble1 小时前
关于学习技术栈的思考
java·开发语言·学习
龙山云仓1 小时前
No156:AI中国故事-对话司马迁——史家绝唱与AI记忆:时间叙事与因果之链
大数据·开发语言·人工智能·python·机器学习