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

相关推荐
进击的小头13 小时前
创建型模式:单例模式(C语言实现与实战)
c语言·开发语言·单例模式
一行注释13 小时前
ECharts柱状图横向展示与DataZoom滑动查看实现
开发语言·前端·javascript
mjhcsp13 小时前
莫比乌斯反演总结
c++·算法
阿班d13 小时前
55555555
c++
Ulyanov13 小时前
Impress.js深度解析
开发语言·前端·javascript·css3·impress.js
烤麻辣烫13 小时前
23种设计模式(新手)-9单例模式
java·开发语言·学习·设计模式·intellij-idea
ytttr87313 小时前
基于MATLAB实现时间序列小波相干性分析
开发语言·matlab
资生算法程序员_畅想家_剑魔14 小时前
Java常见技术分享-设计模式的六大原则
java·开发语言·设计模式
Howrun77714 小时前
C++ 智能指针_详细解释
开发语言
stolentime14 小时前
P14978 [USACO26JAN1] Mooclear Reactor S题解
数据结构·c++·算法·扫描线·usaco