9.26作业

news2024/12/22 9:04:53

C++ 面试题

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

虚函数:父子类中,在父类中的函数需要在子类中进行重写,重写后父子类空间中使用的都是重写后的函数,该函数就是虚函数,虚函数的声明需要在函数前加virtual。
纯虚函数:父子类中,在父类中声明为虚函数但是没有实现的函数,通过在函数声明后加上 = 0 来表示是纯虚函数,包含纯虚函数的类是抽象类,无法实例化对象,且纯虚函数需要子类进行重写,如果子类没有重写,那么子类也是抽象类。

2.基类为什么需要虚析构函数?

解决多态遗留下的问题:当父类指针指向子类对象在堆区申请的空间时,申请空间会先构造父类,再构造子类,但是在使用delete释放父类指针时,由于父类指针的作用域仅仅只是父类空间的内容,可以完成对父类空间的释放,但是,子类自己的空间无法释放,导致内存泄漏。
解决方法:在父类中设置虚析构函数,确保在通过父类指针删除子类对象时,能够正确调用子类的析构函数,避免内存泄露。

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

const数据成员必须在类的构造函数的初始化列表中完成初始化工作,不能在类定义中直接初始化。
static数据成员是静态成员变量,不依附于类对象而存在,在类中声明,必须在类外部定义并初始化。

4.指针和引用的区别

指针是记录指向目标的起始地址;指针需要8字节的存储空间;指针可以有空指针;指针指向目标后可以修改指向目标;定义指针时可以不初始化;指针还可以定义指针数组;指针的偏移,就是偏移目标单位内存空间的大小。
引用是引用目标的别名,本质就是引用目标;引用和引用目标是同一个存储空间;引用没有空引用;引用指定目标后,不可以进行修改;引用必须要初始化;引用中没有引用数组;引用在进行偏移时,就是对目标进行的偏移。

5.new 和 malloc的区别

1、malloc是C语言中标准库中提供的函数,new是C++中的关键字,无需开辟函数内存空间;
2、malloc没有单个和连续申请的区别,new申请空间时区分单个和连续空间的操作;
3、malloc申请空间时需要手动计算要申请空间的大小,new申请空间时,会自动计算大小;
4、malloc申请空间时以字节为单位,new申请空间时以数据类型为单位;
5、malloc申请空间时无法进行初始化,new可以进行初始化工作;
6、malloc申请空间后返回的是void*类型,使用时需要根据具体的情况进行强转,new申请空间时,申请什么类型的空间返回的就是什么类型的指针;
7、new申请对象空间时,会自动调用该对象所在类中的构造函数,而malloc不会。

6.内存泄漏怎么产生的?如何避免?

内存泄漏的产生原因:
1、未释放动态分配的内存:使用 new 或 malloc 分配内存后,未调用 delete 或 free 释放内存。
2、异常处理:在分配内存后发生异常,导致后续的释放代码未被执行。
3、指针丢失:将指针重新赋值或超出作用域,导致原有指针指向的内存无法访问。
4、循环引用:在使用智能指针时,两个或多个对象相互引用,导致内存无法释放。
避免内存泄漏的方法
1、确保释放内存:在使用 new 或 malloc 分配内存后,确保在适当的位置调用 delete 或 free。
2、异常安全:使用 RAII(资源获取即初始化)原则,确保在构造时分配资源,在析构时释放资源。
3、避免指针丢失:在重新赋值指针之前,确保释放原有的内存,或者使用智能指针来管理内存。
4、使用智能指针:C++11 引入了智能指针(如 std::unique_ptr 和 std::shared_ptr),它们会自动管理内存,避免手动释放内存的错误。

7.C++的内存分区

1、代码段:存储程序的可执行代码,通常是只读的,以防止程序在运行时意外修改其指令。
2、数据段
.bss 区用于存储未初始化的全局变量和静态变量;
.data 区用于存储已初始化的全局变量和静态变量;
.ro区用于存储const修饰的变量常量;
.text 区用于存储文本和代码段。
3、堆区:用于动态内存分配。通过 new 和 malloc 等函数分配的内存都来自堆。
4、栈区:用于存储局部变量、函数运行空间和返回地址。栈的大小通常是固定的,超出栈的大小会导致栈溢出。

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

数组:固定大小的线性数据结构,存储相同类型的元素。时间复杂度:访问:O(1),插入/删除(在中间):O(n),空间复杂度:O(n)。
链表:由节点组成的线性数据结构,每个节点包含数据和指向下一个节点的指针。时间复杂度:访问:O(n),插入/删除(在头部或尾部):O(1),空间复杂度:O(n)。
:后进先出(LIFO)的数据结构,支持在一端插入和删除元素。时间复杂度:Push\Pop(插入\删除):O(1),空间复杂度:O(n)。
队列:先进先出(FIFO)的数据结构,支持在一端插入元素,在另一端删除元素。时间复杂度:插入\删除:O(1),空间复杂度:O(n)。
哈希表:通过哈希函数将键映射到值的集合,支持快速查找。时间复杂度:查找\插入\删除:O(1)(平均情况),空间复杂度:O(n)。
二叉树:每个节点最多有两个子节点的树形结构。时间复杂度:查找\插入\删除:O(n)(最坏情况),空间复杂度:O(n)。
时间复杂度:用于评估算法在输入规模增加时所需的时间。通常使用大 O 符号表示。
空间复杂度:用于评估算法在执行过程中所需的额外空间。也使用大 O 符号表示。

思维导图在这里插入图片描述

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

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

相关文章

Trace纳米侦查无人机技术详解

纳米无人机,作为微型无人机的一种,通常指尺寸和重量都非常小的无人机,其重量一般不超过几百克,甚至更小。这类无人机由于体积小、重量轻,具备高度的隐蔽性和灵活性,在军事侦察、环境监测、搜救行动等领域具…

数值计算 --- 平方根倒数快速算法(上)

平方根倒数快速算法(上) --- 向Greg Walsh致敬&#xff01; 写在最前面 --- 一场关于平方根倒数快速算法作者的讨论&#xff1a; 上图中的这段代码出自一个早期的3D游戏<雷神之锤>的源代码&#xff0c;它实现的功能就是计算一个数x的平方根的倒数&#xff1a; 这段代码之…

如何投IEEE论文(Transactions on Cybernetics为例)

文章目录 0. 建议先看看投稿要求1.下载对应的论文模板2.进入提交论文信息的界面3.填写论文中必要的信息3.1 Article Type3.2 Upload Manuscript3.3 Title3.4 Abstract3.5 Authors3.6 Author Details3.7 Math Organizations3.8 Additional Information3.9 Final Review 终审 0. …

计算1 / 1 - 1 / 2 + 1 / 3 - 1 / 4 + 1 / 5 …… + 1 / 99 - 1 / 100 的值,打印出结果

我们写这道题的时候需要俩变量接受&#xff0c;一个总数一个分母&#xff0c;我们发现分母变化是有规律的从1~100循环。 #include<stdio.h> int main() {int i 0;int tag 1;double sum 0.0;for (i 1; i < 101; i){if (i % 2 0){sum sum - 1.0 / i;}else{sum s…

实力!云起无垠荣获“创业邦2024年AIGC创新企业及产品创新”双奖

近日&#xff0c;国际创新生态服务平台创业邦郑重发布 “2024 年 AIGC 创新企业及产品创新榜单”。云起无垠凭借卓越的企业能力与突出的产品创新&#xff0c;成功入选 “2024 年 AIGC 创新企业 100 强” 以及 “2024 年 AIGC 产品创新 100 强”。 本次评选采用内部初审与外部专…

深入分析MySQL事务日志-Undo Log日志

文章目录 InnoDB事务日志-Undo Log日志2.1 Undo Log2.1.1 Undo Log与原子性2.1.2 Undo的存储格式1&#xff09;insert类型Undo Log2&#xff09;delete类型Undo Log3&#xff09;update类型Undo Log 2.1.3 Undo Log的工作原理2.1.4 Undo Log的系统参数2.1.5 Undo Log与Purge线程…

【Linux 报错】vim 保存文件时出现 E45: ‘readonly‘ option is set (add ! to override)

一、错误原因 该错误表明当前你尝试保存的是一个 只读文件&#xff0c;该文件权限设置为只读&#xff0c;具有只读的标识 系统为了防止你意外修改该只读文件&#xff0c;因此会阻止对只读文件的保存&#xff08;他怕你修改了你还保存&#xff0c;破坏了只读属性&#xff09; …

媒界:2025河南台球及配套设施展会3月举办

立足中原&#xff0c;辐射全国&#xff0c;壹肆柒中国国际台球产业博览会3月在郑州盛大举办&#xff1b; 2025中国&#xff08;郑州&#xff09;国际台球产业博览会&#xff08;壹肆柒台球展&#xff09; The 2025 China (Zhengzhou) International Billiards Industry Expo …

2021年的burpsuite安装。

安装burpsuite 很简单的。 1.要有java环境&#xff0c;也就是jdk&#xff0c;并且jdk版本要与burpsuite要对应。&#xff08;如果你的bp安装不起&#xff0c;可能是你的jdk版本不对&#xff09; 2.就是按照我都步骤走就行。 3.下载完文件之后&#xff0c;全程离线操作 说明一下…

spring boot 项目如何使用jasypt加密

1.首先&#xff0c;添加jasypt依赖 <dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>2.1.0</version></dependency> 2.然后winr&#xff0c;cmd调出窗…

Rapid品牌SSL证书通配符单域名申请窍门

RapidSSL最初以FreeSSL的名称引入数字世界&#xff0c;于2003年诞生&#xff0c;扎根于以技术为中心的加利福尼亚州山景城。如今&#xff0c;它是GeoTrust旗下一家值得骄傲的子公司&#xff0c;其战略定位是满足市场对经济高效的SSL证书解决方案的需求。 Rapid属于Geotrust品牌…

Redis篇(初识Redis)

目录 一、数据库 二、NoSQL 三、认识Redis 三、关系数据库与非关系数据库对比 1. 结构化与非结构化 2. 关联和非关联 3. 查询方式 4. 事务 5. 存储方式 6. 扩展性 7. 总结 7.1. 图形梳理 7.2. 表格梳理 7.3. 优缺点 关系型数据库 非关系型数据库 四、再次认识R…

LeetCode142. 环形链表 II(2024秋季每日一题 28)

给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数…

C++:STL详解(二)string类的模拟实现

✨ Blog’s 主页: 白乐天_ξ( ✿&#xff1e;◡❛) &#x1f308; 个人Motto&#xff1a;他强任他强&#xff0c;清风拂山冈&#xff01; &#x1f4ab; 欢迎来到我的学习笔记&#xff01; &#x1f525;&#x1f525;&#x1f525;&#x1f525;&#x1f525;本文参考文章&…

合同管理中的常见陷阱,你是否也中招了?

在合同管理中&#xff0c;很多企业常常会掉进一些意想不到的“陷阱”。这些问题可能在日常工作中看似无关紧要&#xff0c;但一旦忽视&#xff0c;往往会引发一系列严重的后果。合同信息管理混乱&#xff0c;导致重要条款被遗漏&#xff0c;签署文件时出现纰漏&#xff1f;合同…

Pygame中Sprite实现逃亡游戏4

在《Pygame中Sprite实现逃亡游戏3》中实现了玩家跳跃飞火的效果&#xff0c;接下来通过精灵类的碰撞检测来判断飞火是否击中玩家、飞火是否击中飞龙以及飞龙是否抓住玩家。 1 飞火是否击中玩家的判断 判断飞火是否击中玩家的代码如图1所示。 图1 判断飞火是否击中玩家的代码 …

大数据-144 Apache Kudu 基本概述 数据模型 使用场景

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

企业私有网盘怎么搭建?整理国内外主流 18 家方案厂商

目前市场上主流的企业网盘有360亿方云、坚果云、百度企业网盘、联想企业网盘、燕麦云智能企业云盘、腾讯企业网盘等等。就创立时间和用户量来看&#xff0c;联想企业网盘、360亿方云可以说第一梯队的存在。 企业需要的不仅仅是文档存储、分享和协作的简单管理工具&#xff0c;还…

AI无人直播新标杆,一站式直播解决方案:打造专属舞台!

AI无人直播新标杆&#xff0c;一站式直播解决方案&#xff1a;打造专属舞台&#xff01; 在数字化浪潮的汹涌澎湃中&#xff0c;AI技术正以前所未有的速度渗透至各行各业&#xff0c;其中&#xff0c;直播行业作为数字内容传播的重要阵地&#xff0c;正经历着一场由AI引领的深刻…

pr视频剪辑、福昕剪辑……四款剪辑视频大比拼

最近入了视频剪辑的坑&#xff0c;我最近在尝试不同的视频剪辑软件&#xff0c;想找到最适合我的那一款。今天&#xff0c;我就来跟大家分享一下我使用福昕视频剪辑、爱拍视频剪辑、Adobe Premiere&#xff08;简称PR&#xff09;和Shotcut这四款软件时的一些体验和感受。希望我…