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

相关推荐
「QT(C++)开发工程师」2 分钟前
C++11三大核心特性深度解析:类型特征、时间库与原子操作
java·c++·算法
leiming620 分钟前
CAN 通信协议学习讲义(带图文 + C 语言代码)
c语言·开发语言·学习
xht08321 小时前
PHP vs C语言:核心差异全解析
c语言·开发语言·php
yoothey1 小时前
Java字节流与字符流核心笔记(问答+考点复盘)
java·开发语言·笔记
查古穆1 小时前
python进阶-Pydantic模型
开发语言·python
沐知全栈开发1 小时前
Bootstrap4 导航栏
开发语言
kyriewen111 小时前
异步编程:从“回调地狱”到“async/await”的救赎之路
开发语言·前端·javascript·chrome·typescript·ecmascript·html5
AI+程序员在路上1 小时前
嵌入式软件技术大全
linux·开发语言·arm开发·单片机
吴声子夜歌1 小时前
JavaScript——数据类型
开发语言·javascript·ecmascript
Jordannnnnnnn2 小时前
追赶33名
c++