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

相关推荐
脾气有点小暴4 分钟前
JavaScript 数据存储方法全解析:从基础到进阶
开发语言·javascript·ecmascript
繁华似锦respect7 分钟前
C++ 内存分配器-allocator
开发语言·c++·设计模式
沐知全栈开发9 分钟前
Swift 基本语法
开发语言
CoderYanger9 分钟前
动态规划算法-子数组、子串系列(数组中连续的一段):21.乘积最大子数组
开发语言·算法·leetcode·职场和发展·动态规划·1024程序员节
qq_479875439 分钟前
protobuf[1]
java·开发语言
Geoking.17 分钟前
JDK 版本与 Java 版本的关系
java·开发语言
博语小屋19 分钟前
线程同步与条件变量
linux·jvm·数据结构·c++
huohuopro20 分钟前
java基础深度学习 #1
java·开发语言·java基础
csbysj202031 分钟前
Django 模板
开发语言
Zaralike32 分钟前
Java设计模式
java·开发语言·设计模式