C++:38---final关键字和禁止类继承
一、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关键字和禁止类继承相关推荐
- 【Kotlin】Kotlin 类的继承 一 ( 类继承基本方式 | final 关键字 | 子类主构造函数 | 子类次构造函数 )
文章目录 I . 类继承基本方式 II . 使用 final 禁止类继承 / 方法重写 III . 父类没有主构造函数 IV . 父类有主构造函数 V . 父类构造函数与子类构造函数总结 I . 类继 ...
- java final修饰属性_Java final关键字用来修饰类、方法、属性
1.final修饰类:这个类不能被继承.如:String类.StringBuffer类.System类. 2.final修饰方法:不能被重写.如:Object类的getClass()方法. 3.fin ...
- 我对static/final关键字的理解(一个类不同的对象,static修饰的变量,在一个对象中被改变了,对其他对象有无影响?)
我对static/final关键字的理解 一.static关键字 1.1 static关键字可以修饰的 static关键字可以修饰成员变量.成员方法.初始化块.内部类,被static修饰的成员是类的成 ...
- 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 ...
- 浅谈Java中的final关键字
浅析Java中的final关键字 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来 ...
- 浅析Java中的final关键字
浅析Java中的final关键字 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来 ...
- 11.浅析Java中的final关键字
Java中,在匿名内部类的时候可能会经常用到final关键字.Java中的string类就是一个final类.final关键字可以用来修饰类,方法和变量(包括成员变量和局部变量) 1.修饰类 当用fi ...
- 【转】浅析Java中的final关键字
谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法. ...
- JAVA面向对象-----final关键字
JAVA面向对象-–final关键字 1:定义静态方法求圆的面积 2:定义静态方法求圆的周长 3:发现方法中有重复的代码,就是PI,圆周率.1:如果需要提高计算精度,就需要修改每个方法中圆周率. 4: ...
最新文章
- linux系统硬盘数据恢复软件下载,Linux硬盘数据恢复软件
- 全量复制 增量复制 异步复制
- 正则表达式元字符整理
- 『数据库』数据库系统效率Max--数据库并发控制
- global.min.css,css3-媒体查询样式不覆盖原始样式
- 修改mysql表的存储引擎
- 大数据之Spark简介及RDD说明
- Ubuntu16.x服务器 安装 Java,Elasticsearch5.4.X,中文分词,同义词,Logstash5.4.X 日志搜集
- 监控sqlserver 数据变化并记录_携程机票数据仓库11年技术栈的演进
- DEVC6.0使用教程
- adb工具的下载及配置
- 计算机基础知识试题及答案填空题,计算机基础知识练习题及答案解析
- 解决关灯游戏(Lights Off)
- AIS船舶自动识别系统原理
- Spring Boot干货系列(一)入门篇
- Servlet实现 教师管理系统
- 个人开发者用户福音,轻松申请微信商户、支付宝支付妙招
- zCloud补齐某省移动智慧中台dbPaaS能力“短板”
- SAP增强 BADI屏幕增强实例(MIGO增加分页签)
- SAP HANA HDBTable定义table语法
热门文章
- 在PC上用模拟器搭建Windows Mobile仿真环境:Microsoft Device Emulator使用
- java连接imserver_java后端IM消息推送服务开发——协议
- python 怎么处理json_Python是怎样处理json模块的
- geoserver安装(war安装+exe安装)
- 【转】c# 命名空间和程序集
- 第一节:WebApi的纯原生态的RestFul风格接口和路由规则介绍
- 33迭代器模式(Iterator Pattern)
- vs c语言 多线程demo,一个多线程的Socket通信Demo(C语言实现)
- 图形工具包 linux,GTK 4.0图形工具包正式发布:时隔四年的重大版本!
- 空间注意力机制sam_Attention注意力机制介绍