C++ 关键字override,final的作用

简介: C++ 关键字override,final的作用

C++11引入这两个关键字

一、为什么要引入这两个关键字?

1.虚函数复写

  • 不能阻止某个虚函数进一步重写
  • 本意写一个新函数,错误重写基类虚函数(子类中 virtual 关键字可省略)
  • 本意重写基类虚函数旦是签名不一致,在子类中重新构建了一个新的虚函数

2. 类继承

  • 不能阻止某个类进一步派生

二、override

  • 指定子类一个虚函数复写基类的一个虚函数
  • 保证该重写的虚函数与基类的虚函数具有相同的签名

三、final

  • 指定某个虚函数不能在派生类中被覆盖,或者某个类不能被派生
  • 阻塞类进一步派生
  • 阻塞虚函数进一步重写

推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家:

零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/Linux内核)

https://xxetb.xet.tech/s/VsFMs


相关文章
|
21天前
|
存储 安全 编译器
【C++专栏】C++入门 | auto关键字、范围for、指针空值nullptr
【C++专栏】C++入门 | auto关键字、范围for、指针空值nullptr
27 0
|
2天前
|
C语言 C++
【C++入门】关键字、命名空间以及输入输出
【C++入门】关键字、命名空间以及输入输出
|
21天前
|
C++
|
22天前
|
存储 编译器 Linux
【C++】C++入门第二课(函数重载 | 引用 | 内联函数 | auto关键字 | 指针空值nullptr)
【C++】C++入门第二课(函数重载 | 引用 | 内联函数 | auto关键字 | 指针空值nullptr)
|
22天前
|
编译器 C语言 C++
【C++】C++入门第一课(c++关键字 | 命名空间 | c++输入输出 | 缺省参数)
【C++】C++入门第一课(c++关键字 | 命名空间 | c++输入输出 | 缺省参数)
|
1天前
|
编译器 C语言 C++
c++初阶------类和对象(六大默认构造函数的揭破)-3
c++初阶------类和对象(六大默认构造函数的揭破)
|
1天前
|
编译器 C语言 C++
c++初阶------类和对象(六大默认构造函数的揭破)-2
c++初阶------类和对象(六大默认构造函数的揭破)
|
1天前
|
存储 编译器 C语言
c++初阶------类和对象(六大默认构造函数的揭破)-1
c++初阶------类和对象(六大默认构造函数的揭破)
|
1天前
|
存储 编译器 C语言
c++初阶-------类和对象-2
c++初阶-------类和对象
|
1天前
|
编译器 C语言 C++
c++初阶-------类和对象-1
c++初阶-------类和对象