C++避坑小知识

news/2024/9/15 8:03:23/ 标签: c++, 开发语言, 经验分享

引子:本文仅仅用作检查小错误,可以是一篇专辑

一,C++11中已经去除了auto声明自动类型变量的功能,只可以用来进行变量类型推导

二,对于STL提供的所有容器,均可以使用for依次访问器元素

三,final修饰类时,表示该类不能被继承,修饰派生类的虚函数时,表示该虚函数不能被子类继承,另外,继承的虚函数地址没有改变,重写的虚函数地址改变,

四,多态是指允许不同类的对象对同一消息做出响应的能力,即同一个接口可以被不同的实例以不同的方式实现。多态分为编译时多态(静态多态,通过函数重载实现)和运行时多态(动态多态,通过虚函数实现)。

五,override只能修饰子类的虚函数,帮助用户检测是否派生类是否对基类总的某个虚函数进行重写

六,栈区上的对象不需要释放,函数结束时编译器会自动释放,堆上分配的需要手动释放。

七,weak_ptr没有借助RAII的思想管理资源

八,.给定一棵二叉搜索树,根据节点值大小排序所需时间复杂度是线性的

九,编译时的多态性可通过函数重载实现,编译期间,编译器主要检测代码是否违反语法规则,此时无法知道基类的指针或者引用到底引用那个类的对象,也就无法知道调用那个类的虚函数。在程序运行时,才知道具体指向那个类的对象,然后通过虚表调用对应的虚函数,从而实现多态

十,抽象类可以定义指针,而且经常这样做,其目的就是用父类指针指向子类从而实现多态

十一,父类对象的虚表与子类对象的虚表没有任何关系,这是两个不同的对象

十二,在C++中,整型除法的结果是向零取整,这意味着如果除数和被除数符号相反并且被除数绝对值比除数绝对值小,结果将是0而不是负数

十三,.在派生类对象销毁时,先调用子类析构函数,后调用子基类析构函数

敬请期待!


http://www.ppmy.cn/news/1519628.html

相关文章

C语言补习课

来源:黑马程序员 C语言常用占位符 1.%d 或 %i:用于输出有符号整数(int)。 2.%u:用于输出无符号整数(unsigned int)。 3.%f:用于输出浮点数(float或double&#xff09…

NowCoder HJ17 坐标移动

前言 华为机试刷题 题目: HJ17 坐标移动 编程语言: C 解题状态: 基础不牢,磕磕绊绊的 思路 本题主要是模拟题,分为三个步骤:获取字符串后利用分号获取坐标移动步骤;判断步骤是否合法&#xff1…

重构贪心算法(二)

上节课我们初步感受了一下贪心算法,那么我们这一次就来讲述一下常见的贪心模型,今天的主题是区间覆盖 请注意,我所指的贪心模型是一大类,但是在同种大类贪心模型下,还有许多小类。 基本概念 区间覆盖指定一段大区间&…

中资优配:公募基金持股市值超5万亿 电子成第一大重仓行业

作为A股最为重要的组织投资者之一,公募基金的意向备受商场重视。 据证券时报数据宝核算,到二季度末,公募基金持有上市公司家数为5058家,较上一年同期添加119家;持股量为2990.71亿股,同比添加14.49%。 在商…

一文带你上手自动化测试中的PO模式!

自动化测试在软件测试项目团队中发挥着重要的作用,同时合理地开展自动化测试,可以有效降低错误修复成本,提高工作效率。 下面就以web自动化测试为例来说明POM模式:pythonSeleniumpytest框架下,完成自动化测试用例的编…

【Qt】Qt系统 | Qt文件

文章目录 一. 输入输出设备类二. 文件读写类三. 文件和目录信息 文件操作是应用程序必不可少的部分。Qt 作为一个通用开发库,提供了跨平台的文件操作能力,封装了很多关于文件的类,通过这些类能够对文件系统进行操作,如文件读写、文…

基于Django的MySQL项目建设计划

构建一个基于 Django 和 MySQL 的项目需要经过多个阶段的规划和实施。以下是一个详细的建设计划,分为项目准备、开发、测试和部署等几个关键阶段。 1、问题背景 为了完成大学的 “问答网站” 项目,需要在几天内完成项目的计划,并于下周二准备…

MAC安装miniconda提示“文本编码Unicode(UTF-8)不适用”解决方案

需求背景 客户需要在mac环境下安装miniconda,提示安装失败,主要原因是安装版本不对,在选择合适版本,配置好环境后问题得以解决! 报错提示 版本和环境错误 前往地址下载正确版本 https://repo.anaconda.com/miniconda…

基于RK3568平台opencv的图像采集、ffmpeg推流和Windows端拉流(多线程)

目录 一、概述二、环境要求2.1 硬件环境2.2 软件环境三、移植流程3.1 编写测试3.2 验证功能一、概述 本章节是针对ffmpeg移植到 Linux系统,运行在RK3568开发板上,首先创建一个线程opencv通过摄像头采集视频图像,接着再创建两个线程,其中一个线程获取采集的视频图像送给ffm…

去中心化身份验证:Web3时代数字身份的革新

随着Web3时代的到来,去中心化技术正在重新定义数字身份验证的方式。传统的身份验证方法常常依赖于中心化的数据库和中介机构,这些系统不仅易受攻击,还可能侵犯用户的隐私。而去中心化身份验证(DID, Decentralized Identifier&…

Pycharm的终端(Terminal)中切换到当前项目所在的虚拟环境

如果想更近一步,如果想让Pycharm默认显示项目所在虚拟环境,而不是系统基本环境,可以在设置里面更改,点击设置即可进入修改页面,也可以通过文件/File-设置/setting/-工具/Tools-终端/Terminal

乾元通渠道商中标湖南省煤业集团公司安全生产预防和应急救援能力建设装备配备采购项目

近日,乾元通渠道商中标湖南省煤业集团安全生产预防和应急救援能力建设装备配备采购项目,乾元通作为聚合通讯保障技术厂家,为项目一标段卫星通讯指挥车提供车载聚合路由器终端及系统。 乾元通经过多年发展,逐步建起车载系列多链路聚…

在Ubuntu/Linux下重温FC游戏——超级玛丽奥

文章目录 在Ubuntu/Linux下重温FC游戏——超级玛丽奥1 概述2 安装 FCEUX 模拟器3 下载 FC ROMS4 重温时光 在Ubuntu/Linux下重温FC游戏——超级玛丽奥 1 概述 FC 游戏机,是任天堂生产、发行和销售的 8 位第三世代家用游戏机,日本版官方名称为家庭电脑&…

爬虫技术抓取网站数据被限制怎么处理

爬虫技术用于抓取网站数据时,可能会遇到一些限制,常见的包括反爬机制、速率限制、IP封禁等。以下是应对这些情况的一些策略: 尊重robots.txt:每个网站都有robots.txt文件,遵循其中的规定可以避免触犯网站的抓取规则。 …

vscode go开发环境

go 安装go(1.19) 配置环境变量 vscode 安装vscode(VSCode-win32-x64-1.92.2) 安装go扩展 更新go工具 CtrlShiftP打开命令面板; 搜索 Go: Install/Update tools,选择所有可用的…

Artfi将蓝筹艺术投资引入Sui

Asif Kamal希望每个人都能拥有一幅毕加索的作品,或者至少拥有其中的一部分。 全球艺术市场每年销售额达650亿至700亿美元,主要通过包括苏富比、佳士得和邦瀚斯在内的六大主要机构流通。投资蓝筹艺术品可能非常有利可图。然而,对于普通人来说…

Linux文件共享

FTP tcp协议的传输文件标准,安装方法yum install -y vsftpd,使用systemctl start vsftpd开启服务,使用setenforce 0和systemctl stop firewalld关闭SELinux和防火墙,避免对ftp协议的干扰。 客户端使用yum -y install ftp安装ftp…

c语言赋值截断

目录 截断含义 截断举例 截断含义 在C语言中,将一个较宽范围的整型(如16位的short或int16_t)赋值给一个较窄范围的整型(如8位的char或int8_t)时,如果原值超出了目标类型的表示范围,就会发生所…

一种动态防御策略——移动目标防御(MTD)

文章速览: 1、高级规避攻击 2、用移动目标防御对抗欺骗 常见做法操作系统和应用程序才是真正的战场打破游戏规则 网络攻击的技术变得愈发难测,网络攻击者用多态性、混淆、加密和自我修改乔装他们的恶意软件,以此逃避防御性的检测,…

把http网站变成https

网站建设好后默认是HTTP网站,会被浏览器直接标注为不安全站点,甚至搜索引擎上也排名也不是那么出色。 HTTP协议是浏览网站和在线资源的基本协议。由于HTTP的连接未加密,因此往往不安全。HTTPS是默认HTTP协议的安全扩展。 访问HTTPS网站时&…