C++校招面经(二)

欢迎关注 0voice · GitHub
6、 C++ 和 Java 区别(语⾔特性,垃圾回收,应⽤场景等)
指针: Java 语⾔让程序员没法找到指针来直接访问内存,没有指针的概念,并有内存的⾃动管理功能,从⽽有效的
防⽌了 C++ 语⾔中的指针操作失误的影响。但并⾮ Java 中没有指针, Java 虚拟机内部中还是⽤了指针,保证了
Java 程序的安全。
多᯿继承: C++ ⽀持多᯿继承但 Java 不⽀持,但⽀持⼀个类继承多个接⼝,实现 C++ 中多᯿继承的功能,⼜避免
C++ 的多᯿继承带来的不便。
数据类型和类: Java 是完全⾯向对象的语⾔,所有的函数和变ᰁ必须是类的⼀部分。除了基本数据类型之外,其余
的都作为类对象,对象将数据和⽅法结合起来,把它们封装在类中,这样每个对象都可以实现⾃⼰的特点和⾏为。
Java 中取消了 C++ 中的 struct union
⾃动内存管理: Java 程序中所有对象都是⽤ new 操作符建⽴在内存堆栈上, Java ⾃动进⾏⽆⽤内存回收操作,不
需要程序员进⾏⼿动删除。⽽ C++ 中必须由程序员释放内存资源,增加了程序设计者的负担。 Java 中当⼀个对象
不再被⽤到时, ⽆⽤内存回收器将给他们加上标签。 Java ⾥⽆⽤内存回收程序是以线程⽅式在后台运⾏的,利⽤
空闲时间⼯作来删除。
Java 不⽀持操作符᯿载。操作符᯿载被认为是 C++ 的突出特性。
Java 不⽀持预处理功能。 C++ 在编译过程中都有⼀个预编译阶段, Java 没有预处理器,但它提供了 import C++
预处理器具有类似功能。
类型转换: C++ 中有数据类型隐含转换的机制, Java 中需要限时强制类型转换。
字符串: C++ 中字符串是以 Null 终⽌符代表字符串的结束,⽽ Java 的字符串 是⽤类对象( string
stringBuffer )来实现的。
Java 中不提供 goto 语句,虽然指定 goto 作为关键字,但不⽀持它的使⽤,使程序简洁易读。
Java 的异常机制⽤于捕获例外事件,增强系统容错能⼒。
7 、说⼀下 C++ ⾥是怎么定义常ᰁ的?常ᰁ存放在内存的哪个位置?
对于局部常ᰁ,存放在栈区;
对于全局常ᰁ,编译期⼀般不分配内存,放在符号表中以提⾼访问效率;
字⾯值常ᰁ,⽐如字符串,放在常ᰁ区。
8 C++ 中᯿载和᯿写,᯿定义的区别
᯿载
翻译⾃ overload ,是指同⼀可访问区内被声明的⼏个具有不同参数列表的同名函数,依赖于 C++ 函数名字的修饰
会将参数加在后⾯,可以是参数类型,个数,顺序的不同。根据参数列表决定调⽤哪个函数,᯿载不关⼼函数的返
回类型。
᯿写
翻译⾃ override ,派⽣类中᯿新定义⽗类中除了函数体外完全相同的虚函数,注意被᯿写的函数不能是 static 的,
⼀定要是虚函数,且其他⼀定要完全相同。要注意,᯿写和被᯿写的函数是在不同的类当中的,᯿写函数的访问修
饰符是可以不同的,尽管 virtual 中是 private 的,派⽣类中᯿写可以改为 public
᯿定义(隐藏)
派⽣类᯿新定义⽗类中相同名字的⾮ virtual 函数,参数列表
和返回类型都可以不同,即⽗类中除了定义成 virtual 且完全相同的同名函数才
不会被派⽣类中的同名函数所隐藏(᯿定义)。
9 、介绍 C++ 所有的构造函数
类的对象被创建时,编译系统为对象分配内存空间,并⾃动调⽤构造函数,由构造函数完成成员的初始化⼯作。
即构造函数的作⽤:初始化对象的数据成员。
⽆参数构造函数: 即默认构造函数,如果没有明确写出⽆参数构造函数,编译器会⾃动⽣成默认的⽆参数构造函
数,函数为空,什么也不做,如果不想使⽤⾃动⽣成的⽆参构造函数,必需要⾃⼰显示写出⼀个⽆参构造函数。
⼀般构造函数: 也称᯿载构造函数,⼀般构造函数可以有各种参数形式,⼀个类可以有多个⼀般构造函数,前提是
参数的个数或者类型不同,创建对象时根据传⼊参数不同调⽤不同的构造函数。
拷⻉构造函数: 拷⻉构造函数的函数参数为对象本身的引⽤,⽤于根据⼀个已存在的对象复制出⼀个新的该类的对
象,⼀般在函数中会将已存在的对象的数据成员的值⼀⼀复制到新创建的对象中。如果没有显示的写拷⻉构造函
数,则系统会默认创建⼀个拷⻉构造函数,但当类中有指针成员时,最好不要使⽤编译器提供的默认的拷⻉构造函
数,最好⾃⼰定义并且在函数中执⾏深拷⻉。 类型转换构造函数: 根据⼀个指定类型的对象创建⼀个本类的对象,也可以算是⼀般构造函数的⼀种,这⾥提出
来,是想说有的时候不允许默认转换的话,要记得将其声明为 explict 的,来阻⽌⼀些隐式转换的发⽣。
赋值运算符的᯿载 :注意,这个类似拷⻉构造函数,将=右边的本类对象的值复制给=左边的对象,它不属于构造
函数,=左右两边的对象必需已经被创建。如果没有显示的写赋值运算符的᯿载,系统也会⽣成默认的赋值运算
符,做⼀些基本的拷⻉⼯作。
10 C++ 的四种强制转换
C++ 的四种强制转换包括: static_cast, dynamic_cast, const_cast, reinterpret_cast
static_cast :明确指出类型转换,⼀般建议将隐式转换都替换成显示转换,因为没有动态类型检查,上⾏转换
(派⽣类 -> 基类)安全,下⾏转换(基类 -> 派⽣类) 不安全,所以主要执⾏⾮多态的转换操作;
dynamic_cast :专⻔⽤于派⽣类之间的转换, type-id 必须是类指针,类引⽤或 void* ,对于下⾏转换是安全
的,当类型不⼀致时,转换过来的是空指针,⽽ static_cast ,当类型不⼀致时,转换过来的事错误意义的指
针,可能造成⾮法访问等问题。
const_cast :专⻔⽤于 const 属性的转换,去除 const 性质,或增加 const 性质, 是四个转换符中唯⼀⼀个
可以操作常ᰁ的转换符。
reinterpret_cast :不到万不得已,不要使⽤这个转换符,⾼危操作。使⽤特点: 从底层对数据进⾏᯿新解
释,依赖具体的平台,可移植性差; 可以将整形转 换为指针,也可以把指针转换为数组;可以在指针和引⽤
之间进⾏肆⽆忌惮的转换。

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

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

相关文章

利士策分享,自我和解:通往赚钱与内心富足的和谐之道

利士策分享,自我和解:通往赚钱与内心富足的和谐之道 在这个快节奏、高压力的时代,我们往往在追求物质财富的同时,忽略了内心世界的和谐与平衡。 赚钱,作为现代生活中不可或缺的一部分,它不仅仅是生存的手段…

【Godot4.3】胶囊形的偏移获取法

概述 之前用半圆弧拼接的方式求过胶囊形,在逐渐熟练使用Geometry2D的过程中,发现通过线段求端点是圆角类型的偏移多边形,获得的就是胶囊形。 所以我们有了第二种胶囊形求法。 测试代码 tool extends Node2D## 横向宽度 export var width:…

Java-数据结构-排序-(一) (。・ω・。)

文本目录: ❄️一、排序的概念及引用: ➷ 排序的概念: ➷ 常见的排序算法: ❄️二、插入排序的实现: ➷ 1、直接插入排序: ☞ 直接插入排序的基本思想: ☞ 直接插入排序的实现: ▶…

安全热点问题

安全热点问题 1.DDOS2.补丁管理3.堡垒机管理4.加密机管理 1.DDOS 分布式拒绝服务攻击,是指黑客通过控制由多个肉鸡或服务器组成的僵尸网络,向目标发送大量看似合法的请求,从而占用大量网络资源使网络瘫痪,阻止用户对网络资源的正…

HarmonyOS Next开发----使用XComponent自定义绘制

XComponent组件作为一种绘制组件,通常用于满足用户复杂的自定义绘制需求,其主要有两种类型"surface和component。对于surface类型可以将相关数据传入XComponent单独拥有的NativeWindow来渲染画面。 由于上层UI是采用arkTS开发,那么想要…

【医疗大数据】基于 B2B 的医疗保健系统中大数据信息管理的安全和隐私问题分析

基于 B2B 的医疗保健系统中大数据信息管理的安全和隐私问题分析 1、引言 1-1 医疗大数据的特点 10 V模型:在医疗领域,大数据的特点被描述为10 V,包括价值(Value)、体量(Volume)、速度&#xf…

Leetcode Hot 100刷题记录 -Day16(旋转图像)

旋转图像 问题描述: 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1 输入:matrix [[1,2,3],[4,5,6]…

Python学习——【4.2】数据容器:tuple元组

文章目录 【4.2】数据容器:tuple元组一、元组的定义格式二、元组的特点三、元组的操作(一)常见操作(二)循环遍历 【4.2】数据容器:tuple元组 一、元组的定义格式 为什么需要元组 列表是可以修改的。如果想…

【网络安全】分享4个高危业务逻辑漏洞

未经许可,不得转载。 文章目录 正文逻辑漏洞1逻辑漏洞2逻辑漏洞3逻辑漏洞4其它正文 该目标程序是一家提供浏览器服务的公司,其核心功能是网页抓取和多账户登录操作,类似于浏览器中的隐身模式,但更加强大和高效。通过该平台,用户可以轻松管理并同时运行数百个隐身浏览器实…

Navicate 链接Oracle 提示 Oracle Library is not loaded ,账号密码都正确地址端口也对

Navicate 链接Oracle 提示 Oracle Library is not loaded ,账号密码都正确地址端口也对的问题 解决办法 出现 Oracle Library is not loaded 错误提示,通常是因为 Navicat 无法找到或加载 Oracle 客户端库(OCI.dll)。要解决这个问题&#x…

【自动驾驶】决策规划算法 | 数学基础(三)直角坐标与自然坐标转换Ⅱ

写在前面: 🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝 个人主页:清流君_CSDN博客,期待与您一同探索 移动机器人 领域的无限可能。 🔍 本文系 清流君 原创之作&…

Centos中关闭swap分区,关闭内存交换

概述: Swap 分区是 Linux 系统中扩展物理内存的一种机制。Swap的主要功能是当全部的RAM被占用并需要更多内存时,用磁盘空间代理RAM内存。Swap对虚拟化技术资源损耗非常大,一般虚拟化是不允许开启交换空间的,如果不关闭Swap&…

LED显示屏迎来革新:GOB封装技术引领行业新风尚

在我们日常生活中,LED显示屏无处不在,从繁华的街头广告牌到家庭娱乐中心的大屏幕电视,它们都以鲜明的色彩和清晰的画质吸引着我们的目光。然而,在LED显示屏技术日新月异的今天,一种名为GOB(Glue On Board&a…

ChatCADChatCAD+:Towards a Universal and Reliable Interactive CAD using LLMs

ChatCAD(论文链接:[2302.07257] ChatCAD: Interactive Computer-Aided Diagnosis on Medical Image using Large Language Models (arxiv.org)) 网络流程图: 辅助阅读: 基于大型语言模型的医学图像交互式计算机辅助诊…

7、论等保的必要性

数据来源:7.论等保的必要性_哔哩哔哩_bilibili 等级保护必要性 降低信息安全风险 等级保护旨在降低信息安全风险,提高信息系统的安全防护能力。 风险发现与整改 开展等级保护的最重要原因是通过测评工作,发现单位系统内外部的安全风险和脆弱…

基于SpringBoot的考研助手系统+LW参考示例

系列文章目录 1.基于SSM的洗衣房管理系统原生微信小程序LW参考示例 2.基于SpringBoot的宠物摄影网站管理系统LW参考示例 3.基于SpringBootVue的企业人事管理系统LW参考示例 4.基于SSM的高校实验室管理系统LW参考示例 5.基于SpringBoot的二手数码回收系统原生微信小程序LW参考示…

c++9月20日

1.思维导图 2.顺序表 头文件 #ifndef RECTANGLE_H #define RECTANGLE_H#include <iostream>using namespace std;using datatype int ;//类型重定义class Seqlist { private://私有权限datatype *ptr; //指向堆区申请空间的起始地址int size;//堆区空间的长度int len …

在python爬虫中xpath方式提取lxml.etree._ElementUnicodeResult转化为字符串str类型

简单提取网页中的数据时发现的 当通过xpath方式提取出需要的数据的text文本后想要转为字符串&#xff0c;但出现lxml.etree._ElementUnicodeResult的数据类型不能序列化&#xff0c;在网上查找到很多说是编码问题Unicode编码然后解码什么的&#xff1b;有些是(导入的xml库而不…

【24华为杯数模研赛赛题思路已出】国赛B题思路丨附参考代码丨免费分享

2024年华为杯研赛B题解题思路 B题 WLAN组网中网络吞吐量建模 问题1 请根据附件WLAN网络实测训练集中所提供的网络拓扑、业务流量、门限、节点间RSSI的测试基本信息&#xff0c;分析其中各参数对AP发送机会的影响&#xff0c;并给出影响性强弱的顺序。通过训练的模型&#xff…

在SpringBoot项目中利用Redission实现布隆过滤器(布隆过滤器的应用场景、布隆过滤器误判的情况、与位图相关的操作)

文章目录 1. 布隆过滤器的应用场景2. 在SpringBoot项目利用Redission实现布隆过滤器3. 布隆过滤器误判的情况4. 与位图相关的操作5. 可能遇到的问题&#xff08;Redission是如何记录布隆过滤器的配置参数的&#xff09;5.1 问题产生的原因5.2 解决方案5.2.1 方案一&#xff1a;…