当前位置: 首页 > news >正文

C++结尾

面试题

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

在定义函数时前面加virtual。虚函数是为了,父子类中只有一个该函数。如果在子类重写虚函数,那么用的就是子类重写的虚函数;如果子类没有重写虚函数,那么调用的是父类继承的虚函数;如果这个类定义了虚函数,那么在子孙类该函数也是虚函数,不需要加vartual。

纯虚函数是在虚函数头后加“ = 0”;包含纯虚函数的类称为抽象类,不能进行实例化。子类需要重写纯虚函数,不然也是抽象类

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

当基类的指针指向子类在堆区申请的空间时,申请空间先构造父类在构造子类。但delete父类指针时只能释放父类指针的作用域,不能完全释放子类空间,就会导致内存泄露。所以需要再定义析构函数前加virtual设置成虚析构函数。该类的子孙类也会是虚析构函数。

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

使用const必须对变量进行初始化,构造函数使用初始化列表来完成初始化;

static成员变量一般在类内声明,类外定义,没有给定初始值默认为0。

4.指针和引用的区别

1.指针使用*进行定义,引用使用&进行定义

2.引用没有多级引用,指针有多级指针

3.定义引用的时候必须初始化,定义指针的时候可以不初始化;

4.没有空引用,有空指针;

5.引用不能更改目标,指针在后面可以更改指向;

6.引用没有引用数组,指针有指针数组;

7.引用就是目标本身,指针是存储目标的首地址;

8.引用不占用内存空间,使用目标的内存空间,指针需要占用内存空间

9.使用引用是直接就可以使用,使用指针需要*运算符

10.引用偏移是目标本身的偏移,指针的偏移是目标内存空间的偏移

5.new和malloc的区别

1.malloc的函数调用需要开辟内存空间,new的关键字,不需要开辟函数内存空间;

2.malloc申请空间没有单个和连续的区分,new申请有单个和连续空间的区分

3.malloc申请空间要手动计算空间大小,new的系统自动计算大小

4.malloc申请空间以字节为单位,new申请空间以数据类型为单位

5.malloc申请的空间是void *类型,需要是要进行强转,new申请的什么类型返回的就是什么类型的指针

6.malloc申请空间不能初始化,new申请空间可以进行初始化

7.new申请空间自动调用该类的构造函数,malloc不会

6.内存泄露怎么产生的?怎么避免

当父类指针指向子类申请的空间,在delete父类指针时,只能释放父类指针作用域的空间,不能释放剩余的子类空间,就会导致内存泄露。所以需要在父类的析构函数前加virtual设置成虚析构函数。

7.C++的内存分区

分为堆区:动态分配内存区域,由new和delete操作。栈区:已经初始化的局部变量;静态区:未初始化的局部变量和全局变量

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

常用的有数组:时间复杂度:访问(O(1));插入/删除(O(n));空间复杂度(O(n))

链表:时间复杂度:访问(O(n));插入/删除(O(1))(位置已经知道);空间复杂度(O(n))

栈:时间复杂度:入栈/出栈(O(1));空间复杂度(O(n))

队列:时间复杂度:入队/出队(O(1));空间复杂度(O(n))

类:

思维导图

 

相关文章:

C++结尾

面试题 1.什么是虚函数?什么是纯虚函数 在定义函数时前面加virtual。虚函数是为了,父子类中只有一个该函数。如果在子类重写虚函数,那么用的就是子类重写的虚函数;如果子类没有重写虚函数,那么调用的是父类继承的虚函…...

Flutter鸿蒙化环境配置(windows)

Flutter鸿蒙化环境配置(windows) 参考资料Window配置Flutter的鸿蒙化环境下载配置环境变量HarmonyOS的环境变量配置配置Flutter的环境变量Flutter doctor -v 检测的问题flutter_flutter仓库地址的警告问题Fliutter doctor –v 报错[!] Android Studio (v…...

Vue入门之生命周期

文章目录 一、Vue 生命周期概述二、生命周期的四个阶段1. 创建阶段2. 挂载阶段3. 更新阶段4. 销毁阶段 三、代码案例四、总结 在 Vue 开发中,理解生命周期是非常重要的。Vue 的生命周期可以帮助我们在不同的阶段执行特定的逻辑,从而更好地控制组件的行为…...

UNI-SOP应用场景(1)- 纯前端预开发

在平时新项目开发中,前端小伙伴是否有这样的经历,hi,后端小伙伴们,系统啥时候能登录,啥时候能联调了,这是时候往往得到的回答就是,再等等,我们正在搭建系统呢,似曾相识的…...

力扣9.23

1014. 最佳观光组合 给你一个正整数数组 values&#xff0c;其中 values[i] 表示第 i 个观光景点的评分&#xff0c;并且两个景点 i 和 j 之间的 距离 为 j - i。 一对景点&#xff08;i < j&#xff09;组成的观光组合的得分为 values[i] values[j] i - j &#xff0c;…...

[Redis][事务]详细讲解

目录 0.什么是事务&#xff1f;1.Redis 事务本质2.Redis 事务意义3.事务操作1.MULTI2.EXEC3.DISCARD4.WATCH5.UNWATCH 0.什么是事务&#xff1f; Redis的事务和MySQL的事务概念上是类似的&#xff0c;都是把一系列操作绑定成一组&#xff0c;让这一组能够批量执行Redis事务和M…...

Latex——一行的划线 如何分开

代码&#xff1a; \cmidrule(r){3-4} \cmidrule(r){5-6} \cmidrule(r){7-8}效果&#xff1a; 参考文章&#xff1a; LaTeX技巧653&#xff1a;如何隔开LaTeX表格邻近\cline表格线&#xff1f;...

大数据:快速入门Scala+Flink

一、什么是Scala Scala 是一种多范式编程语言&#xff0c;它结合了面向对象编程和函数式编程的特性。Scala 这个名字是“可扩展语言”&#xff08;Scalable Language&#xff09;的缩写&#xff0c;意味着它被设计为能够适应不同规模的项目&#xff0c;从小型脚本到大型分布式…...

侧边菜单的展开和折叠

环境准备&#xff1a;Vue3Element-UI Plus <script setup> import {ref} from "vue";// 是否折叠菜单&#xff0c;默认折叠 const isCollapse ref(true)</script><template><el-container><el-aside><el-menu:collapse"isCo…...

自动化办公-Python中的for循环

for 循环是 Python 中用于迭代&#xff08;遍历&#xff09;序列&#xff08;如列表、元组、字典、集合、字符串&#xff09;或其他可迭代对象的控制结构。它允许您逐一访问序列中的每个元素&#xff0c;并对其执行操作。以下是对 for 循环的详细介绍&#xff0c;包括语法、使用…...

Python_itertools

itertools itertools.count(start, step) 返回一个无限迭代器&#xff0c;从指定的start开始&#xff0c;每次增加step。 import itertools # 从1开始&#xff0c;每次增加1&#xff0c;输出前5个数 for i in itertools.count(1, 1):if i > 5:breakprint(i)运行结果&#…...

Apache Iceberg 数据类型参考表

Apache Iceberg 概述-链接 Apache Iceberg 数据类型参考表 数据类型描述实例方法注意事项BOOLEAN布尔类型&#xff0c;表示真或假true, false用于条件判断&#xff0c;例如 WHERE is_active true。确保逻辑条件的正确性。INTEGER32位有符号整数42, -7可用于计算、聚合&#xf…...

职责链模式

职责链模式 责任链&#xff08;Chain of Responsibility&#xff09;模式&#xff1a;为了避免请求发送者与多个请求处理者耦合在一起&#xff0c;于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链&#xff1b;当有请求发生时&#xff0c;可将请求沿着这…...

新品 | Teledyne FLIR IIS 推出Forge 1GigE SWIR 短波红外工业相机系列

近日&#xff0c;51camera的合作伙伴Teledyne FLIR IIS推出了新品Forge 1GigE SWIR 130万像素的红外相机。 Forge 1GigE SWIR系列的首款相机配备宽频带、高灵敏度的Sony SenSWIR™️ 130万像素IMX990 InGaAs传感器。这款先进的传感器采用5um像素捕捉可见光和SWIR光谱&#xff…...

深入MySQL:掌握索引、事务、视图、存储过程与性能优化

在掌握了MySQL的基本操作之后&#xff0c;你可能会遇到更复杂的数据管理和优化需求。本文将介绍一些MySQL的进阶特性&#xff0c;包括索引、事务、视图、存储过程和函数、以及性能优化等内容。通过学习这些高级功能&#xff0c;你可以更高效地管理和优化你的数据库。 索引 索…...

【WSL——Windows 上使用 Linux 环境】

引入 以前在windows上使用linux工具链&#xff0c;一般都要安装虚拟机&#xff08;VMware/virtualBox)。虚拟机的缺点是&#xff0c;因为是完整的虚拟环境&#xff0c;消耗系统资源比较多。 windows自己开发了WSL功能&#xff0c;实现了虚拟机的功能&#xff0c;但是比虚拟机性…...

Redis:事务

什么是Redis事务 Redis 事务的本质是一组命令的集合。事务支持一次执行多个命令&#xff0c;一个事务中所有命令都会被序列化。在事务执行过程&#xff0c;会按照顺序串行化执行队列中的命令&#xff0c;其他客户端提交的命令请求不会插入到事务执行命令序列中。 总结说&…...

策略模式的介绍和具体实现

❤ 作者主页&#xff1a;李奕赫揍小邰的博客 ❀ 个人介绍&#xff1a;大家好&#xff0c;我是李奕赫&#xff01;(&#xffe3;▽&#xffe3;)~* &#x1f34a; 记得点赞、收藏、评论⭐️⭐️⭐️ &#x1f4e3; 认真学习!!!&#x1f389;&#x1f389; 文章目录 策略接口三种…...

MySQL InnoDB MVCC数据结构分析

1、概述 MVCC&#xff08;Multiversion Concurrency Control&#xff09;多版本并发控制&#xff0c;通过维护不同的版本号&#xff0c;提供一种很好的并发控制技术&#xff0c;这种技术能够使读写操作不冲突&#xff0c;提升并发性能。 MySQL InnoDB存储引擎&#xff0c;在更…...

MySQL 8 查看 SQL 语句的执行进度

目录 1. 查询各阶段执行进度 &#xff08;1&#xff09;开启收集与统计汇总执行阶段信息的功能 &#xff08;2&#xff09;确定执行的SQL所属的thread_id &#xff08;3&#xff09;查询各阶段的执行进度 2. 查询SQL语句的整体执行进度 1. 查询各阶段执行进度 &#xff0…...

保姆级教程:手把手教你用ONNX Runtime部署YOLOv8-OBB旋转框检测模型(附完整代码)

从零实现YOLOv8-OBB旋转框检测&#xff1a;ONNX Runtime部署全流程实战 旋转目标检测在遥感图像、文档分析等场景中具有独特优势。YOLOv8-OBB作为Ultralytics推出的旋转框检测版本&#xff0c;其部署过程与传统水平框检测存在显著差异。本文将彻底拆解从模型导出到推理优化的完…...

Ubuntu 20.04 下通过 PPA 快速部署 qBittorrent 及配置指南

1. 为什么选择qBittorrent&#xff1f; 如果你经常需要下载大型文件&#xff0c;比如开源系统镜像、影视素材或者游戏资源&#xff0c;那么一个靠谱的BT客户端绝对是刚需。我在Ubuntu上试过各种BT工具&#xff0c;最终发现qBittorrent是最稳定高效的选择。它完全开源免费&#…...

华为ENSP实战:手把手教你搭建住宅小区网络拓扑(附完整配置脚本)

华为ENSP实战&#xff1a;从零构建智能小区网络的全栈解决方案 当清晨第一缕阳光透过窗帘洒进房间&#xff0c;现代人睁开眼的第一件事往往是拿起手机查看消息——这种习以为常的场景背后&#xff0c;是无数个日夜运行的住宅小区网络在默默支撑。作为网络工程师&#xff0c;我…...

TouchGal:一站式Galgame社区解决方案终极指南

TouchGal&#xff1a;一站式Galgame社区解决方案终极指南 【免费下载链接】kun-touchgal-next TouchGAL是立足于分享快乐的一站式Galgame文化社区, 为Gal爱好者提供一片净土! 项目地址: https://gitcode.com/gh_mirrors/ku/kun-touchgal-next 还在为寻找Galgame资源而四…...

为什么92%的Spring Cloud Function项目仍在忍受秒级冷启动?这4个被忽视的Classloader陷阱必须立即修复

第一章&#xff1a;冷启动问题的云原生本质与量化归因冷启动并非单纯的应用延迟现象&#xff0c;而是云原生架构中资源按需供给、隔离边界强化与运行时环境动态构建三者耦合引发的系统性效应。其本质在于容器编排层&#xff08;如 Kubernetes&#xff09;与函数计算平台&#x…...

为什么你的Java车载模块在-40℃冷启动失败?温度敏感型JIT编译失效分析与AOT预编译加固方案(ISO 26262 Part 6实证)

第一章&#xff1a;Java车载系统实时性优化技巧在车载嵌入式环境中&#xff0c;Java虚拟机&#xff08;JVM&#xff09;的默认行为往往难以满足毫秒级响应、确定性调度与低抖动等硬实时需求。尽管Java并非传统实时语言&#xff0c;但通过深度配置与架构约束&#xff0c;可显著提…...

终极指南:使用 crypto-js 测试套件确保你的加密功能100%可靠

终极指南&#xff1a;使用 crypto-js 测试套件确保你的加密功能100%可靠 【免费下载链接】crypto-js JavaScript library of crypto standards. 项目地址: https://gitcode.com/gh_mirrors/cr/crypto-js 在Web开发中&#xff0c;你有没有遇到过这样的场景&#xff1a;你…...

Z-Image-GGUF提示词工程实战:写出高质量描述生成惊艳图像

Z-Image-GGUF提示词工程实战&#xff1a;写出高质量描述生成惊艳图像 你是不是也遇到过这种情况&#xff1a;用同一个AI绘画模型&#xff0c;别人生成的图片美轮美奂&#xff0c;自己生成的却总差点意思&#xff1f;问题很可能出在“提示词”上。 提示词&#xff0c;就是你告…...

PicView图片浏览器完整指南:从零开始掌握高效图片管理技巧

PicView图片浏览器完整指南&#xff1a;从零开始掌握高效图片管理技巧 【免费下载链接】PicView Fast, free and customizable image viewer for Windows 10 and 11. 项目地址: https://gitcode.com/gh_mirrors/pi/PicView PicView是一款专为Windows 10和11设计的快速、…...

RMBG-2.0模型量化压缩:减小体积提升速度

RMBG-2.0模型量化压缩&#xff1a;减小体积提升速度 1. 引言 抠图工具RMBG-2.0确实效果惊艳&#xff0c;但原版模型动不动就几个GB的大小&#xff0c;在普通电脑上跑起来慢吞吞的&#xff0c;更别说在手机或边缘设备上部署了。如果你也遇到过模型太大、推理太慢的问题&#x…...