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

相关推荐
张人玉3 分钟前
C#通信精讲系列——C# 通讯编程基础(含代码实例)
开发语言·c#·c#通信
小熊熊知识库9 分钟前
C# Ollama 实战聊天小案例实现
开发语言·c#
慕容青峰9 分钟前
【LeetCode 1925. 统计平方和三元组的数目 题解】
c++·算法·leetcode
哈哈xcpc-439917 分钟前
天梯赛题解(Python和C++解法)
开发语言·c++·python
A Mr Yang17 分钟前
JAVA 对比老、新两个列表,找出新增、修改、删除的数据
java·开发语言·spring boot·后端·spring cloud·mybatis
咔咔咔的18 分钟前
1925. 统计平方和三元组的数目
c++
星释21 分钟前
Rust 练习册 120:探索向量与斐波那契数列
开发语言·后端·rust
zmzb010334 分钟前
C++课后习题训练记录Day47
开发语言·c++
北极糊的狐1 小时前
报错java: 找不到符号符号: 类 XxxController位置: 程序包 com.ruoyi.xxx.xxx.service
开发语言·windows·python
独自破碎E1 小时前
如何用最短替换让字符串变平衡?
java·开发语言·算法·leetcode