C++学习9.26

news2024/11/19 19:17:15

1、

1、什么是虚函数?什么是纯虚函数?

虚函数就是在基类中声明为 virtual的成员函数,允许在派生类中重写。
纯虚函数就是一个没有函数体额虚函数,在类声明中使用=0来特指它是纯虚函数

2、基类为甚么要虚析构函数?

虚析构函数:是用来解决当父类指针指向子类在堆区空间的对象时,
会先构造父类再把整个子类空间构造出来,
但是当要释放父类指针时只能释放父类空间的内容,
子类剩余的空间没办法释放所产生的内存泄漏问题。

3、如何初始化const和static数据成员

const修饰的成员变量必须在构造函数的初始化列表进行初始化工作,
因为他们在对象创建后就不能够被修改了。
static修饰的成员属于类而不是属于特定对象。
他们可以在类中声明,但是需要在类外进行初始化。

4、指针和引用的区别

指针和引用都是间接访问对象的一种方式
1、指针式用*来声明的,而引用时用&来声明的
2、指针声明时可以不进行初始化,而引用声明时必须初始化
3、指针的指向可以更改,而引用定义指向后就不能进行更改
4、指针储存的时变量的地址,而引用自身就是该变量
5、指针需要定义时需要额外的分配空间,引用不需要分配空间
6、没有多级引用,但是有多级指针
7、指针的偏移指的是空间大小的改变,引用的偏移就是对目标进行的改变
8、指针的储存空间大小统一都是8字节,引用的储存大小和目标一致

5、new和malloc的区别

1、malloc申请空间时调用函数来进行的,new只是关键字
2、malloc申请空间时候没办法进行初始化,new申请时可以初始化
3、malloc申请空间返回值时void类型,new申请返回值是按照申请空间时的类型
4、malloc申请空间不分单个和连续,new申请时则分单个和连续
5、malloc申请空间时按照字节大小为单位,new申请时是按照数据类型为单位
6、malloc申请空间是需要手动计算申请大小,new申请时是自动进行计算大小

6、内存泄漏是如何产生的?如何避免?

如何产生:
1、使用new或者malloc申请空间时,没有调用delete或free进行释放
2、父类指针调用子类函数时,结束后直接进行析构
解决:
1、每次申请空间后,结束时候要使用delete或free进行空间释放
2、在父类的析构函数采用虚析构函数

7、C++的内存分区

栈、怼、静态区、代码区、数据区

8、常用的数据结构有那些?时间复杂度和空间复杂度如何使用?

数组、链表、栈、队列、哈希表、二叉树、图
1、数组
时间复杂度:
       访问:O(1)
       插入:O(n)
空间复杂度:
             O(n)
2、链表
时间复杂度:
       访问:O(n)
       插入:O(1)
空间复杂度:
             O(n)
3、栈
时间复杂度:
       访问:O(n)
       push/pop:O(1)
空间复杂度:
             O(n)
4、队列
时间复杂度:
       访问:O(n)
       enqueue:O(1)
空间复杂度:
             O(n)
5、哈希表
时间复杂度:
       访问:O(1)(平均)
空间复杂度:
             O(n)
6、二叉树
时间复杂度
       查找/插入/删除:O(n)(不平衡)
       查找/插入/删除:O(log1)(平衡)
空间复杂度:
             O(n)

2、思维导图

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

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

相关文章

CC-LINK IE Field Basic通讯设置

一、设备简介 硬件:R08EN、FR-E840-EPB; 软件:GX Works3、FR Configurator2; 二、硬件展示 三、PLC侧参数设置 1.登录配置文件(配置文件前期博文已经分享了,自行下载) 2.导航→参数→模块参数…

大端、小端区分与判断

大小端的判断是根据系统如何存储二进制数据来判断的 大端顾名思义,以数据的高位做开端的操作系统、小端也是以数据的低位做开端的操作系统 用最简单的例子: 对于数据0x01来说,高位为0低位为1,转十进制: 0x01 0 * 1…

存储技术(CXL、open-channel SSD)

一、CXL技术 1.1 CXL技术要解决的问题 1、对系统和设备的一致性访问 传统的是使用Cache(L1/L2/L3)和内存的方式实现一致性访问的,通过PCIE总线访问的方式通常是非一致性的读写。 主机对连接到 PCIe 设备内存的每次访问也要由 PCIe 设备处理…

【Mybatis篇】动态SQL的详细带练

🧸安清h:个人主页 🎥个人专栏:【计算机网络】 🚦作者简介:一个有趣爱睡觉的intp,期待和更多人分享自己所学知识的真诚大学生。 文章目录 🎯一.动态SQL简单介绍 🚦动态S…

机器学习:opencv--背景建模

目录 一、背景建模是什么? 二、背景建模的目的 三、背景建模的方法及原理 四、代码实现 1.创建卷积核 2.创建混合高斯模型 3.处理图像 4.绘制人形轮廓 5.条件退出 一、背景建模是什么? 指在计算机视觉中,从视频序列中提取出静态背景…

深入工作流调度的内核

在大数据时代,工作流任务调度系统成为了数据处理和业务流程管理的核心组件,在大数据平台的构建和开发过程中尤为重要。随着数据量的激增和业务需求的多样化,合理的任务调度不仅能够提高资源利用率,还能保证业务流程的稳定和高效运…

Cannon-es.js之Distance Constrait物体约束详解

本文目录 前言最终效果1、Distance Constrait的基本属性和方法1.1 属性1.2 方法 2、Distance Constrait的约束详解2.1 前置代码准备2.2 效果 3、模拟生成小球撞击3.1 代码3.2 效果 前言 在Cannon-es.js中,DistanceConstraint(距离约束)是一种…

【华为HCIP实战课程三】动态路由OSPF的NBMA环境建立邻居及排错,网络工程师

一、NBMA环境下的OSPF邻居建立问题 上节我们介绍了NBMA环境下OSPF邻居建立需要手动指定邻居,因为NBMA环境是不支持广播/组播的 上一节AR1的配置: ospf 1 peer 10.1.1.4 //手动指定邻居的接口地址,而不是RID peer 10.1.1.5 area 0.0.0.0 手动指定OSPF邻居后抓包查看OSP…

Linux命令:块设备信息查看命令lsblk的具体介绍

目录 一.lsblk的介绍 二.基础用法 2.1基础命令和示意图 2.2详细说明 三.进阶用法 3.1列出指定的块设备信息 3.2查看设备完整路径 3.3强制以树形式输出信息 3.4其他参数 一.lsblk的介绍 lsblk是Linux系统中的一个命令行工具,用于列出所有可用的块设备&#…

基于单片机的可调式中文电子日历系统

** 文章目录 前言概要功能设计软件设计效果图 程序文章目录 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们…

RK3588主板PCB设计学习(六)

可以在其它层对过孔进行削盘处理, 可以看到,这里有些过孔用不上,在这一层进行了削盘处理: 对于这种电源层进行铺铜操作的时候,如果不进行削盘处理的话这些焊盘可能导致这个电源层面不完整,存在割裂的风险&a…

平安养老险肇庆中心支公司开展“2024年金融教育宣传月”活动

为加强消费者金融教育宣传,切实提升社会公众金融素养,有效防范化解金融风险,营造和谐健康金融环境,在肇庆金融监管分局指导下,平安养老险肇庆中心支公司开展金融教育宣传月暨反洗钱宣传月系列活动。 9月11日&#xff…

基于Springboot+Vue的高校教室资源管理系统的设计与实现(含源码+数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 这个系…

学习docker第二弹------基本命令[帮助启动类命令、镜像命令、容器命令]

docker目录 前言基本命令帮助启动类命令停止docker服务查看docker状态启动docker重启docker开机启动docker查看概要信息查看总体帮助文档查看命令帮助文档 镜像命令查看所有的镜像 -a查看镜像ID -q在仓库里面查找redis拉取镜像查看容器/镜像/数据卷所占内存删除一个镜像删除多个…

美图AI短片创作工具MOKI全面开放 支持生成配乐、细节修改

人工智能 - Ai工具集 - 集合全球ai人工智能软件的工具箱网站 美图公司近日宣布,其研发的AI短片创作工具MOKI已正式向所有用户开放。这款专注于AI短片创作的工具,提供了包括动画短片、网文短剧等多种类型视频内容的生成能力,致力于为用户带来…

Foo a30 = Foo(123);会调用哪些构造函数

一、解答 在您提供的代码中,表达式 Foo a30 Foo(123); 会直接调用 Foo 类中接受一个 int 类型参数的构造函数。这里是构造函数的调用过程: Foo(123) 创建了一个临时的 Foo 对象,使用的是接受 int 参数的构造函数。这个构造函数内部会执行 c…

6.数据结构与算法-线性表的链式表示和实现-单链表

链式存储结构 与链式存储有关的术语 单链表,双链表,循环链表 头指针,头节点,首元节点 有无头节点的区别 如何表示空表 设置头节点的好处 头节点的数据域内装什么 链表(链式存储)的特点 带头节点的单链表 单…

【中级通信工程师】综合能力:2024年真题回顾(附答案)

【零基础3天通关中级通信工程师】 综合能力:2024年真题回顾 本文是根据参加考试的回忆并且结合网上几版资料复原的2024年通信考试中级《综合能力》的真题考卷,旨在为广大考生提供复习和备考的参考,试卷大体和真题相符,部分选项回…

算法闭关修炼百题计划(一)

多看优秀的代码一定没有错,此篇博客属于个人学习记录 1.两数之和2.前k个高频元素3.只出现一次的数字4.数组的度5.最佳观光组合6.整数反转7.缺失的第一个正数8.字符串中最多数目的子序列9.k个一组翻转链表10.反转链表II11. 公司命名12.合并区间13.快速排序14.数字中的…

Windows Defender 强力删除工具 Defender Remover 下载

DefenderRemover.exe官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘123云盘为您提供DefenderRemover.exe最新版正式版官方版绿色版下载,DefenderRemover.exe安卓版手机版apk免费下载安装到手机,支持电脑端一键快捷安装https://www.123865.com/s/ajCgTd-79HEDefenderRemo…