一、final关键字

  • C++新标准规定:如果我们定义的类不希望被其他类继承,那么可以在类名后加一个final关键字

  • 但是final类仍然可以继承其他类。

  • 实际上C++11的关键字final有两个用途。第一,它阻止了从类继承;第二,阻止一个虚函数的重载。

二、演示案例

class A final{};
class B:public A{}; //报错,A是final的
class A {};
class B final :public A{}; //正确
class C:public B {}; //错误

某些实现系统服务、基础功能和加密等的类通常是不允许有子类的;实现者不想客户端从这些类派生新类而修改他们。标准库容器,如std:: vector和std:: list的无子类化类型就是另一个很好的例子。这些容器没有虚拟析构函数或者确切地说没有任何虚成员函数。

然而,程序员常常在没有意识到风险的情况下坚持从std::vector派生。在C++11中,无子类类型将被声明为如下所示:

class TaskManager {/*..*/} final;class PrioritizedTaskManager: public TaskManager {};  //compilation error: base class TaskManager is final

同样,你可以通过

C++:38---final关键字和禁止类继承相关推荐

  1. 【Kotlin】Kotlin 类的继承 一 ( 类继承基本方式 | final 关键字 | 子类主构造函数 | 子类次构造函数 )

    文章目录 I . 类继承基本方式 II . 使用 final 禁止类继承 / 方法重写 III . 父类没有主构造函数 IV . 父类有主构造函数 V . 父类构造函数与子类构造函数总结 I . 类继 ...

  2. java final修饰属性_Java final关键字用来修饰类、方法、属性

    1.final修饰类:这个类不能被继承.如:String类.StringBuffer类.System类. 2.final修饰方法:不能被重写.如:Object类的getClass()方法. 3.fin ...

  3. 我对static/final关键字的理解(一个类不同的对象,static修饰的变量,在一个对象中被改变了,对其他对象有无影响?)

    我对static/final关键字的理解 一.static关键字 1.1 static关键字可以修饰的 static关键字可以修饰成员变量.成员方法.初始化块.内部类,被static修饰的成员是类的成 ...

  4. 17.Java常用实用类之String类中常用的方法以及一般应用场景,final关键字

    文章目录 1.String类学习 1.1.什么是String类 1.2.String类中常用的方法 1.2.1. 构造方法 1.2.2.public int length() 1.2.3.public ...

  5. 浅谈Java中的final关键字

    浅析Java中的final关键字 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来 ...

  6. 浅析Java中的final关键字

    浅析Java中的final关键字 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来 ...

  7. 11.浅析Java中的final关键字

    Java中,在匿名内部类的时候可能会经常用到final关键字.Java中的string类就是一个final类.final关键字可以用来修饰类,方法和变量(包括成员变量和局部变量) 1.修饰类 当用fi ...

  8. 【转】浅析Java中的final关键字

    谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法. ...

  9. JAVA面向对象-----final关键字

    JAVA面向对象-–final关键字 1:定义静态方法求圆的面积 2:定义静态方法求圆的周长 3:发现方法中有重复的代码,就是PI,圆周率.1:如果需要提高计算精度,就需要修改每个方法中圆周率. 4: ...

最新文章

  1. linux系统硬盘数据恢复软件下载,Linux硬盘数据恢复软件
  2. 全量复制 增量复制 异步复制
  3. 正则表达式元字符整理
  4. 『数据库』数据库系统效率Max--数据库并发控制
  5. global.min.css,css3-媒体查询样式不覆盖原始样式
  6. 修改mysql表的存储引擎
  7. 大数据之Spark简介及RDD说明
  8. Ubuntu16.x服务器 安装 Java,Elasticsearch5.4.X,中文分词,同义词,Logstash5.4.X 日志搜集
  9. 监控sqlserver 数据变化并记录_携程机票数据仓库11年技术栈的演进
  10. DEVC6.0使用教程
  11. adb工具的下载及配置
  12. 计算机基础知识试题及答案填空题,计算机基础知识练习题及答案解析
  13. 解决关灯游戏(Lights Off)
  14. AIS船舶自动识别系统原理
  15. Spring Boot干货系列(一)入门篇
  16. Servlet实现 教师管理系统
  17. 个人开发者用户福音,轻松申请微信商户、支付宝支付妙招
  18. zCloud补齐某省移动智慧中台dbPaaS能力“短板”
  19. SAP增强 BADI屏幕增强实例(MIGO增加分页签)
  20. SAP HANA HDBTable定义table语法

热门文章

  1. 在PC上用模拟器搭建Windows Mobile仿真环境:Microsoft Device Emulator使用
  2. java连接imserver_java后端IM消息推送服务开发——协议
  3. python 怎么处理json_Python是怎样处理json模块的
  4. geoserver安装(war安装+exe安装)
  5. 【转】c# 命名空间和程序集
  6. 第一节:WebApi的纯原生态的RestFul风格接口和路由规则介绍
  7. 33迭代器模式(Iterator Pattern)
  8. vs c语言 多线程demo,一个多线程的Socket通信Demo(C语言实现)
  9. 图形工具包 linux,GTK 4.0图形工具包正式发布:时隔四年的重大版本!
  10. 空间注意力机制sam_Attention注意力机制介绍