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

相关推荐
Molesidy12 小时前
【VSCode】【Clangd】Win下的基于LLVM/Clangd+Clangd插件+MINGW+CMake的VSCode配置C/C++开发环境的详细教程
c++·ide·vscode·clangd·llvm
ᐇ95913 小时前
Java LinkedList集合全面解析:双向链表的艺术与实战
java·开发语言·链表
码银13 小时前
【数据结构】顺序表
java·开发语言·数据结构
Mr_WangAndy13 小时前
C++_chapter13_C++并发与多线程_多线程概念,死锁,unique_lock(),lock_guard()使用
c++·lock·死锁·并发与多线程·unlock·lock_guard·unique_lock
小欣加油13 小时前
leetcode 946 验证栈序列
c++·算法·leetcode·职场和发展
神仙别闹13 小时前
基于QT(C++) 实现哈夫曼压缩(多线程)
java·c++·qt
Python私教14 小时前
Python 开发环境安装与配置全指南(2025版)
开发语言·python
百锦再14 小时前
第12章 测试编写
android·java·开发语言·python·rust·go·erlang
无敌最俊朗@14 小时前
C++ 并发与同步速查笔记(整理版)
开发语言·c++·算法
Elastic 中国社区官方博客14 小时前
Observability:适用于 PHP 的 OpenTelemetry:EDOT PHP 加入 OpenTelemetry 项目
大数据·开发语言·人工智能·elasticsearch·搜索引擎·全文检索·php