C++ 语言禁止派生类 - final specifier
C++ 语言禁止派生类 - final
specifier
1. 禁止派生类
可以将类指定为 final
,确保不能将类用作基类。
禁止派生 CBox
类:
class CBox final
{// Class details ...
};
定义中类名后面的 final
修饰符告诉编译器不允许从 CBox
类中派生。final
不是关键字,只在这个上下文中有特殊的含义。不能把关键字用作名称,但可以把 final
用作变量名。
2. 防止发生继承
C++11 新标准提供了一种防止继承发生的方法,在类名后跟一个修饰符 final
:
class NoDerived final { /* */ }; // NoDerived 不能作为基类 class Base { /* */ };
class Last final : Base { /* */ }; // Last 不能作为基类,不能继承 Lastclass Bad1 : NoDerived { /* */ }; // 错误∶NoDerived 是 final 的
class Bad2 : Last { /**/ }; // 错误∶Last 是 final 的
Standard Template Library,STL:标准模板库
References
Ivor Horton’s Beginning Visual C++ 2013
(美) Ivor Horton 著, 李周芳, 江凌 译. Visual C++ 2013 入门经典[M]. 第 7 版. 清华大学出版社, 2015.
http://www.wrox.com/WileyCDA/WroxTitle/productCd-1118845714.html
C++ Primer
(美) Stanley B. Lippman, (美) Josée Lajoie, (美) Barbara E. Moo 著, 王刚, 杨巨峰 译. C++ Primer 中文版[M]. 第 5 版. 电子工业出版社, 2013.
https://www.informit.com/store/c-plus-plus-primer-9780321714114
cppreference.com - C++ reference
https://en.cppreference.com/w/cpp/language/final
C++ 语言禁止派生类 - final specifier相关推荐
- 4.3调整基类成员在派生类中的访问属性的方法
同名成员 在定义派生类的时候,C++语言允许派生类与基类中的函数名相同.如果在派生类中定义了与基类中相同的成员,则称派生类成员覆盖了基类的同名成员,在派生类中使用这个名字意味着访问在派生类中重新说明的 ...
- c语言格式对齐填充_C ++中类的大小 课堂上的填充和对齐| 派生类的大小
c语言格式对齐填充 Prerequisite: 先决条件: sizeof() operator in C/C++ C / C ++中的sizeof()运算符 Size of struct in C C ...
- C++语言之一个派生类继承了所有的基类方法,但下列情况除外
一个派生类继承了所有的基类方法,但下列情况除外: 基类的构造函数.析构函数和拷贝构造函数. 基类的重载运算符. 基类的友元函数.
- c 自定义实现string类 clear_CC++语言15|类的继承和派生实现代码重用、扩充
在C++中,继承是一个对象自动获取其父对象的所有属性和行为的过程.通过继承,您可以重用,扩展或修改在其他类中定义的属性和行为.通过继承,可以实现函数重写以及多态. 在C++中,继承另一个类的成员的类称 ...
- C++语言基础 例程 派生类的声明与构成
贺老师的教学链接 本课讲解 派生类 #include <iostream> #include<string> using namespace std; class Stude ...
- C++ Primer 5th笔记(chap 15 OOP)继承之派生类
1. 构造函数 每个类控制它自己的成员初始化过程:尽管派生类包含了从基类继承而来的成员,但是派生类不能直接初始化这些成员,而是需要使用基类的构造函数来初始化它们. 派生类对象的基类部分与派生类对象自己 ...
- java抽象类及其派生类_java抽象类
本文指标: 1. 最基本的运用:掌握java类最简单,最核心的写法 2. 理论知识:语法角度,设计角度 3. 几种典型应用 最简单也是最核心的抽象类示例: 学习应该是一个循序渐进的过程,学java抽象 ...
- C++>继承,继承方式及其比较,子类和父类对象指针,派生类的默认成员函数,虚继承,继承与友元,继承与静态成员
继承 继承的概念与定义 概念: 继承是指一个子类(或称为派生类)继承父类(或称为基类)的特征(属性和操作).继承是面向对象程序设计时实现代码复用的重要手段,它允许在原有的类的基础上进行扩展,增加功能, ...
- C++中基类与派生类的构造函数和析构函数
1.Cpp中的基类与派生类的构造函数 基类的成员函数可以被继承,可以通过派生类的对象访问,但这仅仅指的是普通的成员函数,类的构造函数不能被继承.构造函数不能被继承是有道理的,因为即使继承了,它的名字和 ...
最新文章
- 咖啡html代码,HTML5咖啡生成代码动画
- 机器学习中的无监督学习_无监督机器学习中聚类背后的直觉
- handler原子锁_Linux的原子操作与同步机制
- MongoDB 字段拼接 $concat(aggregation)
- rsyslog syslog详解
- Ubuntu的奇技淫巧
- Python扩展库scipy中值滤波算法的应用
- java在win8闪退_解决Win8/Win8.1系统下的IE11闪退的六种方法
- c语言定义一个strcmp函数,定义一个strcmp函数实现两个字符串比较,函数原型为int strcmp(char * p1,...
- powerdesigner 连接数据库
- 【北京迅为】i.MX6ULL终结者MPU6050 六轴传感器例程原理分析
- c51单片机外部中断汇编语言,51单片机汇编语言外部中断笔记
- 针式打印机保养方法汇总
- c语言小饭店等位就餐程序,小饭店预约登记管理系统,
- AT89C51中断模板(宏定义)
- 使用jQuery easyui和Springdata JPI进行数据的查询
- windows 10 专业版构建虚拟机业务Hyper-V
- 微信域名防封防屏蔽 微信APP下载链接如何做防封防屏蔽
- java之xml进阶教程——使用castor框架
- benchmark datasets是什么
热门文章
- django框架之中间件
- 使用Linux C 简易实现LS(实现过程)
- AutoCAD.NET API2018二次开发第十九章
- Trigger与Flip-Flop两种‘触发器’的区别
- windows11 第三方 截图工具对比
- 关于DRV8303/8301电路框图
- MSBUILD : error MSB4132: The tools version “2.0“ is unrecognized. Available tools versions are “4.0“
- Spring 4 Hello World 例子(带源码)
- 慕课学习史上最全零基础入门HTML5和CSS笔记
- VScode VSC Netease Music(网易云音乐)插件