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

相关推荐
CoderCodingNo21 小时前
【GESP】C++一级真题 luogu-B4410 [GESP202509 一级] 金字塔
开发语言·c++
超级大福宝21 小时前
C++中1 << 31 - 1相当于INT_MAX吗?
c语言·c++
free-elcmacom21 小时前
Python实战项目<2>使用Graphviz绘制流程框图
开发语言·python·graphviz
ljuncong21 小时前
python的装饰器怎么使用
开发语言·python
alibli21 小时前
一文学会设计模式之结构型模式及最佳实现
c++·设计模式
A7bert77721 小时前
【YOLOv5seg部署RK3588】模型训练→转换RKNN→开发板部署
linux·c++·人工智能·深度学习·yolo·目标检测
2501_9448755121 小时前
Go后端工程师
开发语言·后端·golang
听风吟丶21 小时前
Java 反射机制深度解析:从原理到实战应用与性能优化
java·开发语言·性能优化
chen_note1 天前
Python面向对象、并发编程、网络编程
开发语言·python·网络编程·面向对象·并发编程
她说彩礼65万1 天前
C# params使用
开发语言·c#·log4j