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 小时前
面试记录12 软件(c++)工程师
c++·面试·职场和发展
a程序小傲14 小时前
阿里Java面试被问:.Java 8中Stream API的常用操作和性能考量
开发语言·windows·python
酷酷的佳14 小时前
C语言--数组作为函数参数
c++
爱装代码的小瓶子14 小时前
【c++进阶】从C++98到C++11的奇妙旅程(故事科普版)
开发语言·c++
智航GIS14 小时前
2.3 运算符详解
开发语言·python
web3.088899914 小时前
接入API-自动化批量获取淘宝商品详情数据
开发语言·python
世转神风-14 小时前
qt-在字符串中指定位置插入字符串
开发语言·qt
时光呀时光慢慢走14 小时前
C# WinForms 实战:MQTTS 客户端开发(与 STM32 设备通信)
开发语言·c#
superman超哥15 小时前
仓颉类型别名的使用方法深度解析
c语言·开发语言·c++·python·仓颉
LFly_ice15 小时前
Next-4-路由导航
开发语言·前端·javascript