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

相关推荐
liuzhangfeiabc1 小时前
[luogu12541] [APIO2025] Hack! - 交互 - 构造 - 数论 - BSGS
c++·算法·题解
学习使我变快乐1 小时前
C++:迭代器
开发语言·c++·windows
好想有猫猫1 小时前
【Redis】List 列表
数据库·c++·redis·分布式·缓存·list
zwjapple2 小时前
RabbitMQ的基本使用
开发语言·后端·ruby
咖啡の猫3 小时前
JavaScript基础-作用域链
开发语言·javascript
找不到、了3 小时前
关于ReadWriteLock读写锁的介绍
java·开发语言·jvm
佩奇的技术笔记3 小时前
Python入门手册:Python简介,什么是Python
开发语言·python
superior tigre3 小时前
C++学习:六个月从基础到就业——C++11/14:其他语言特性
c++·学习
天堂的恶魔9464 小时前
C++ - 仿 RabbitMQ 实现消息队列(2)(Protobuf 和 Muduo 初识)
c++·rabbitmq·ruby
休息一下接着来4 小时前
进程间通信(IPC)常用方式对比
linux·c++·进程间通讯