【C++】final关键字 | 避免派生、重写

创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡>𖥦<)!!
主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!
🔥c++系列专栏:C/C++零基础到精通 🔥

给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ

在这里插入图片描述

c语言内容💖:

专栏:c语言之路重点知识整合

【c语言】全部知识点总结


目录

  • 一、避免继承
  • 二、避免重写
  • final 关键字的优点

C++11 标准引入的新关键字: final

一、避免继承

使用 final修饰整个类,表示这个类不能被其他类继承

class CFather final{// 类的成员和方法//...
};//error
class CSon : public CFather
{
};

image.png

例如:在单例模式中使用 final关键字防止类被继承,严格控制实例化,保证了类不被进一步扩展

class Singleton final
{
private:// 静态成员变量在类声明时就已经初始化  static Singleton* sin;// 私有构造函数,确保外部无法直接创建实例  Singleton(){}Singleton(const Singleton& single) = delete;  // 使用delete替代私有构造函数// 析构函数也设置为私有,但这在饿汉式单例中不是必需的,因为对象是在程序结束时自动销毁的	~Singleton(){}public:static Singleton* getSingle(){// 直接返回已经初始化的静态对象的地址  return sin;}void fun(){cout << "Singleton::fun()" << endl;}};
// 在类外初始化静态成员变量  
Singleton* Singleton::sin = new Singleton();

二、避免重写

使用 final修饰虚函数,代表该虚函数不能在子类中被重写

final关键字放在函数名的后面

class CFather
{
public:virtual void fun() final {}
};// error
class CSon : public CFather
{
public:void fun() override{}
};

image.png


final 关键字的优点

  • 提高了代码的安全性
  • 确保类的结构和行为的稳定性

在这里插入图片描述

大家的点赞、收藏、关注将是我更新的最大动力! 欢迎留言或私信建议或问题。
大家的支持和反馈对我来说意义重大,我会继续不断努力提供有价值的内容!如果本文哪里有错误的地方还请大家多多指出(●'◡'●)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/34992.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AWS云计算平台:全方位服务与实践案例

摘要 在数字化浪潮的推动下&#xff0c;云计算已成为企业转型的强大引擎。AWS作为云计算的先锋&#xff0c;不仅提供了一系列强大的基础设施服务&#xff0c;更是在人工智能领域不断探索和创新。本文将带您领略AWS的全方位服务&#xff0c;并透过实际案例&#xff0c;感受其在…

注解详解系列 - @ConditionalOnProperty:基于属性的条件配置

注解简介 在今天的注解详解系列中&#xff0c;我们将探讨ConditionalOnProperty注解。ConditionalOnProperty是Spring Boot提供的一个注解&#xff0c;用于基于配置属性的值来有条件地包含或排除Bean定义。通过ConditionalOnProperty注解&#xff0c;可以根据外部配置文件中的…

最新MDYS14源码影视视频网站模板/苹果CMS系统/附搭建教程

最新MDYS14源码影视视频网站模板/苹果CMS系统/附搭建教程 基本介绍&#xff1a; 1、后台增加自定义参数&#xff0c;对应会员升级页面&#xff0c;以及积分充值 2、视频&#xff0c;演员&#xff0c;专题&#xff0c;收藏&#xff0c;会员系统模块齐全&#xff0c;支持子分类…

发包真香之:scapy工具

scapy – python 可自由组包 参考学习&#xff1a;初识Scapy–Python的Scapy/Kamene模块学习之路 scapy 介绍 Scapy是基于Python语言的网络报文处理程序&#xff0c;它可以让用户发送、嗅探、解析、以及伪造网络报文&#xff0c;运用Scapy可以进行网路侦测、端口扫描、路由追…

已解决java.beans.IntrospectionException: 在Java Beans中内省过程失败的正确解决方法,亲测有效!!!

已解决java.beans.IntrospectionException: 在Java Beans中内省过程失败的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 目录 问题分析 报错原因 解决思路 解决方法 检查命名规范 验证Getter/Setter匹配性 确认访问权限 审查类型一致性 简…

常见概念之压力测试

简介 压力测试(Stress Testing)通常包含以下几个主要内容: 负载测试(Load Testing) 模拟大量并发用户访问系统,测试系统在高负载下的表现。关注系统的响应时间、吞吐量、资源利用率等指标。确定系统的最大承载能力。 容量测试(Capacity Testing) 测试系统在超出正常预期负…

Android网络基础面试题之HTTPS的工作流程和原理

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 工作流程 HTTPS 默认工作在 TCP 协议443端口&#xff0c;它的工作流程一般如以下方式&#xff1a; 1、TCP 三次同步握手 2、客户端验证服务器…

SpringMVC 请求参数接收

目录 请求 传递单个参数 基本类型参数传递 未传递参数 传递参数类型不匹配 传递多个参数 传递对象 后端参数重命名 传递数组 传递集合 传递JSON数据 JSON是什么 JSON的优点 传递JSON对象 获取URL中的参数 文件上传 在浏览器与程序进行交互时&#xff0c;主要分为…

智能语音机器人代替辅助人工电销是发展的必然,语音识别

智能语音机器人电销是从2016年之后开始出现在电销市场上&#xff0c;并且迅速被众多电销企业所认可使用。那究竟什么是智能语音机器人呢!字面理解就是利用智能语音机器人去做人工电销员该做的工作&#xff0c;完成人工电销员需要完成的任务。事实上智能语音机器人也就是字面上理…

字节豆包 MarsCode:AI 开发工具

MarsCode 是豆包旗下的智能编程助手&#xff0c;类似 GitHub Copilot 提供以智能代码补全为代表的核心能力&#xff0c;简单试用了下&#xff0c;免费&#xff0c;使用时需要手机号登录&#xff0c;代码补全还算 ok&#xff0c;聊天功能就有点差了。 还包括一个 AI 原生 IDE&am…

UNIAPP编译到微信小程序时,会多一层以组件命名的标签

UNIAPP编译到微信小程序时&#xff0c;会多一层以组件命名的标签 解决方案 可以配置virtualHost来配置 export default {options: {virtualHost: true} }

pygraphviz安装教程

踩了无数坑之后&#xff0c;终于把pygraphviz安装好了。 首先先说明我的配置情况&#xff0c;我是在pycharm里面使用anaconda的虚拟环境运行项目。要安装pygraphviz得先满足三个前置条件&#xff1a; &#xff08;1&#xff09;已安装python(version 3.10, 3.11, or 3.12) &…

数据仓库之主数据管理

主数据管理&#xff08;Master Data Management, MDM&#xff09;是数据管理的一部分&#xff0c;旨在确保企业的关键业务数据&#xff08;即主数据&#xff09;的准确性、一致性和完整性。主数据是指在多个系统、应用和流程中共享的核心数据&#xff0c;例如客户、产品、供应商…

playwright调用魔改浏览器

官网 Playwright Library | Playwright const { chromium, firefox, webkit } require(playwright);(async () > {const browser await chromium.launch({executablePath:"D:/chrome-可配置/Chrome-bin/chrome.exe",//打开魔改的浏览器headless:false}); // …

DockerDesktop中mysql容器无法使用Exec窗口解决

解决前 需要登陆&#xff1a; 登陆后需要升级才能启动调试模式 需要订阅才能使用 解决后&#xff1a; 正常使用 解决方法&#xff1a; 不要在DockerDesktop中启动mysql容器&#xff0c;使用命令行启动 启动命令 docker run --name mysql_docker -e MYSQL_ROOT_PASSWORD12345…

怎么新建百度词条

新建百度词条是一个分步骤的过程&#xff0c;需要遵循一定的规则和流程。以下是百科参考网shaoshai整理详细的步骤&#xff1a; 点击输入图片描述&#xff08;最多30字&#xff09; 怎么新建百度词条 1. 注册百度账号 在创建百度词条之前&#xff0c;您需要先注册一个百度账号…

存储系统的理解-磁盘、RAID和SAN

存储系统 存储系统是计算机硬件中负责长期数据存储的关键组件&#xff0c;它负责管理和保护数据&#xff0c;使其能够被计算机系统快速访问。主要的存储类型包括磁盘驱动器&#xff08;HDD&#xff09;和固态硬盘&#xff08;SSD&#xff09;&#xff0c;它们是传统存储的基础…

【LINUX】内核源码文件系统调用相关摸索

首先&#xff0c;先看看想测试那个系统调用&#xff0c;在应用层&#xff0c;如果使用C语言编程一般我们一来就是open函数&#xff0c;实际在测试的时候&#xff0c;直接用touch xxx.txt然后 echo "xxx" >> xxx.txt&#xff0c;这样就完成了文件创建和写文件的…

基于单片机光纤测距系统的设计与实现

摘要 &#xff1a; 光纤由于其频带宽 、 损耗低及抗干扰能力强等优点已被广泛地应用在通信 、 电子及电力方面 &#xff0c; 是我们生产生活中必不可少的媒介。 在实际的光纤实验 、 安装 、 运营和维护工作中 &#xff0c; 一种精准 、 轻便和易操作的光纤测距系统显得尤为重…

【系统架构设计师】七、信息安全技术基础知识(信息安全的概念|信息安全系统的组成框架|信息加解密技术)

目录 一、信息安全的概念 1.1 信息安全的基本要素和范围 1.2 信息存储安全 1.3 网络安全 二、信息安全系统的组成框架 2.1 技术体系 2.2 组织机构体系 2.3 管理体系 三、 信息加解密技术 3.1 数据加密 3.2 对称加密技术 3.3 非对称加密算法 3.4 数字信封 3.5 信…