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

相关推荐
量子炒饭大师1 分钟前
Cyber骇客的树状逻辑数据——【初阶数据结构与算法】树
c语言·数据结构·c++·二叉树·
草莓熊Lotso1 分钟前
C++ 异常完全指南:从语法到实战,优雅处理程序错误
android·java·开发语言·c++·人工智能·经验分享·后端
init_23611 分钟前
MPLS跨域optionA 配置案例
java·开发语言·网络
墨有6664 分钟前
【C++ 入门】类和对象(中)
开发语言·c++
雪夜行人4 分钟前
cobra命令行工具
开发语言·golang
王家视频教程图书馆5 分钟前
C#使用 tcp socket控制台程序和unity客户端通信
开发语言·tcp/ip·c#
小兜全糖(xdqt)5 分钟前
python cobnfluent kafka transaction事务
开发语言·python·kafka
新鲜势力呀7 分钟前
低成本实现轻量级 Claude 风格对话交互 ——PHP 极简版开发详解
开发语言·php·交互
MyBFuture7 分钟前
C#抽象类与重载重写实战
开发语言·c#·visual studio
墨有6669 分钟前
【C++ 入门】类和对象下
c++