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

相关推荐
喵个咪18 分钟前
Qt 优雅实现线程安全单例模式(模板化 + 自动清理)
c++·后端·qt
止水编程 water_proof39 分钟前
JavaScript基础
开发语言·javascript·ecmascript
欧阳x天1 小时前
C++入门(一)
c++
小张成长计划..1 小时前
【C++】:priority_queue的理解,使用和模拟实现
c++
小小测试开发1 小时前
JMeter JSR223预处理程序高级用法:解锁自动化测试的灵活性上限
开发语言·jmeter·groovy
Dream it possible!1 小时前
LeetCode 面试经典 150_二叉树层次遍历_二叉树的层平均值(82_637_C++_简单)
c++·leetcode·面试·二叉树
星释1 小时前
Rust 练习册 22:映射函数与泛型的威力
开发语言·rust·机器人
云泽8082 小时前
C++ List 容器详解:迭代器失效、排序与高效操作
开发语言·c++·list
xlq223222 小时前
15.list(上)
数据结构·c++·list