C++面试笔记(持续更新...)

1.C++的特性

        封装:将数据和具体实现在类中隐藏,对外只留出接口方便调用。

        继承:子类继承父类的方法和全部数据,提高软件按复用率

        多态:自继承的条件下,继承自同一父类的类的同一的方法对同一个事物具有不同的表现状态。

2.C++中类和结构体的区别

        1.默认的访问权限不同:结构体是public,类是private

        2.概念上:结构体偏向于数据的集合,类偏向于数据和行为的集合

3.C++重写,重载,重定义,隐藏

        重写:父类的函数和子类的函数名字参数返回值都相同,父类的函数是虚函数

        重载:在同一作用域内,函数名相同,参数和返回值不同

        重定义:在同一作用域内,函数名,参数,返回值都相同

        隐藏:在继承的条件下,父类中的函数不是虚函数,子类中定义了父类中的函数

4.C++中有哪些默认的函数 (其中7,8是在C++11中有)

        1.构造函数 -- T();

        2.析构函数 -- ~T();

        3.拷贝构造 -- T(const T&);

        4.拷贝赋值运算符 -- T& operator = (const T&);

        5.默认的重载取址 -- T* operator & ();

        6.const默认的重载取址 -- const T* operator & () const;

        7.移动构造函数 -- T(T &&);

        8.移动赋值运算符 -- T& operator = (T&&);

5.指针和引用的区别

        1.指针可以为空,引用不能为空

        2.指针可以有多级指针,引用不能有多级引用

        3.引用必须初始化,指针可以不用初始化

        4.sizeof的值不同,指针返回的是地址控件所占字节数32位系统4字节.64为系统8字节,引用返回的是引用类型的大小

        5.引用是定义了一个变量的别名,指针是存储了变量的地址

        6.引用自加1是引用的实体加1,指针自加1是向后偏移一个类型的大小

6.数组和指针的区别

        1.数组是一种数据结构,指针是一种变量类型

        2.赋值方式不同,指针可以给同类型的指针直接赋值,数组需要一个一个元素赋值

        3.求sizeof,指针的大小一直都是系统的字节数32位4字节,64位8字节,数组的大小是sizeof(arr)/sizeof(arr[0])

7.如何通过一个指针去new一个数组

        int* p = new arr[10];new一个大小为10类型都是int的数组 -- (数组的名就是首元素的地址)

int** arr = new int*[10];  // 创建一个指向10个整型数组的指针
for (int i = 0; i < 10; i++) {arr[i] = new int[5];  // 为每个整型数组分配5个整数
}

8.内存的分区

        1.堆区:new 和 malloc申请的空间

        2.栈区:变量和指针

        3.静态区:变量声明为static类型,全局变量

        4.字符常量区:"abc" -- 存放字符

        5.代码区:编译后的二进制文件

9.C++std容器中都用过/都知道哪些(挑自己认为绝对不会说错的说)

        1.std::list 插入时间复杂度O(n) ,删除时间复杂度O(n),查找时间复杂度O(n)

        2.std::vector 尾插如果发生扩容是O(n),未发生扩容是O(1),删除O(n),查找按下标查找O(1),按值查找O(n)

        3.std::map 底层是红黑树,插入O(logN),删除O(logN),查找O(logN)

10.std::vector中push_back函数和emplace_back函数都是尾添加元素的函数有什么区别

        区别在于emplace_back相较于push_back少了对于元素构造和移动元素的时间,emplace_back是直接在容器中构造元素省时间,push_back函数接受一个值或临时对象,emplace_back接受与将要构造的元素类型相同的参数,push_back在接受一个临时对象时会调用拷贝构造,在接受一个左值会调用移动构造

11.栈和队列的区别

        1.栈是先进后出,队列先进后出

        2.栈对栈顶的查找删除插入O(1)

        3.队列对队头的查找和删除是O(1),对队尾插入是O(1) 其余是O(n)

        4.栈多用于递归,队列多用于需要顺序处理的工作如消息队列

12.TCP和UDP有什么区别

        1.TCP是字节流,UDP是报文

        2.TCP会发生粘包,UDP不会

        3.TCP是由连接的UDP是无连接

        4.TCP有流量控制,差错控制等,UDP没有

        5.TCP是传输的数据有序,UDP传输的数据无序

        6.TCP首部20字节,UDP首部8字节

        7.TCP可靠,UDP不可靠

        8.TCP是一对一,UDP是一对一,一对多,多对多

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

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

相关文章

uniapp h5端和app端 使用 turn.js

前提:添加页后,添加页与当前页会重叠在一起,不知道为什么,没有找到解决办法 1.h5端 <template><view class"container"><view id"flipbook"><view class"page page1">Page 1</view><view class"page pag…

MySQL数据库(3)—— 表操作

目录 一&#xff0c;创建表 1.1 创建表的SQL 1.2 演示 二&#xff0c;查看表 三&#xff0c;修改表 四&#xff0c;删除表 常用的表操作会涉及到两种SWL语句 DDL&#xff08;Data Definition Language&#xff09;数据定义语言&#xff1a;建表、改表、删表等&#xff0…

【精调】LLaMA-Factory 快速开始4 自定义个一个sharegpt数据集并训练

数据格式说明 LLaMA Factory:微调LLaMA3模型实现角色扮演 数据集 参考 开源模型应用落地-DeepSeek-R1-Distill-Qwen-7B-LoRA微调-LLaMA-Factory-单机单卡-V100(一) 大神给出的数据集的讲解:注册 如

Unity 位图字体

下载Bitmap Font Generator BMFont - AngelCode.com 解压后不用安装直接双击使用 提前设置 1、设置Bit depth为32 Options->Export options 2、清空所选字符 因为我们将在后边导入需要的字符。 Edit->Select all chars 先选择所有字符 Edit->Clear all chars i…

open webui 部署 以及解决,首屏加载缓慢,nginx反向代理访问404,WebSocket后端服务器链接失败等问题

项目地址&#xff1a;GitHub - open-webui/open-webui: User-friendly AI Interface (Supports Ollama, OpenAI API, ...) 选择了docker部署 如果 Ollama 在您的计算机上&#xff0c;请使用以下命令 docker run -d -p 3000:8080 --add-hosthost.docker.internal:host-gatewa…

Servlet概述(Ⅰ)

目录 一、Servlet概述 演示 创建JavaWeb项目&#xff08;2017版本为例&#xff09; 1. 打开 IntelliJ IDEA 2. 选择项目类型 3. 配置框架 二、Servlet初识(熟练) 1.servlet说明 2.Servlet 接口方法 3.创建Servlet 4.JavaWeb请求响应流程 ​编辑 ​编辑 5.servlet…

Spring Cloud — Hystrix 服务隔离、请求缓存及合并

Hystrix 的核心是提供服务容错保护&#xff0c;防止任何单一依赖耗尽整个容器的全部用户线程。使用舱壁隔离模式&#xff0c;对资源或失败单元进行隔离&#xff0c;避免一个服务的失效导致整个系统垮掉&#xff08;雪崩效应&#xff09;。 1 Hystrix监控 Hystrix 提供了对服务…

DeepSeek 助力 Vue 开发:打造丝滑的 键盘快捷键(Keyboard Shortcuts)

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…

WPS接入deepseek-OfficeAI助手插件下载

功能简介 OfficeAI 助手 是一款免费的智能AI办公工具软件&#xff0c;专为 Microsoft Office 和 WPS 用户打造。 无论你是在寻找如何输入“打勾&#xff08;√&#xff09;符号”的方法&#xff0c;还是想知道“怎么在插入表格前添加文字”&#xff0c;或者“该用哪个公式”&a…

关系数据理论

一、函数依赖 若t1(X)t2(X),必有t1(Y)t2(Y),那么我们称属性组X函数确定属性组Y&#xff0c;或者说Y函数依赖于X。记为X->Y&#xff0c;其中X叫决定因素&#xff0c;Y叫依赖因素。 平凡函数依赖与非平凡函数依赖&#xff1a; 二、1-BCNF 评价关系模式“好坏”的理论标准就…

【C】队列与栈的相互转换

栈与队列是两种特点相反的数据结构&#xff0c;一个特点是后进先出&#xff0c;一个特点是先进先出&#xff0c;但是他们之间是可以相互转换的。 目录 1 用队列实现栈 1&#xff09; 题目解析 2&#xff09; 算法解析 &#xff08;1&#xff09; 结构(MyStack) &#xff…

有向图的强连通分量: Kosaraju算法和Tarjan算法详解

在上一篇文章中, 我们了解了图的最小生成树算法. 本节我们来学习 图的强连通分量(Strongly Connected Component, SCC) 算法. 什么是强连通分量? 在 有向图 中, 若一组节点内的任意两个节点都能通过路径互相到达(例如 A → B A \rightarrow B A→B 且 B → A B \rightarro…

如何为自己的 PDF 文件添加密码?在线加密 PDF 文件其实更简单

随着信息泄露和数据安全问题的日益突出&#xff0c;保护敏感信息变得尤为重要。加密 PDF 文件是一种有效的手段&#xff0c;可以确保只有授权用户才能访问或修改文档内容。本文将详细介绍如何使用 CleverPDF 在线工具为你的 PDF 文件添加密码保护&#xff0c;确保其安全性。 为…

面向机器学习的Java库与平台简介、适用场景、官方网站、社区网址

Java机器学习的库与平台 最近听到有的人说要做机器学习就一定要学Python&#xff0c;我想他们掌握的知识还不够系统、不够全面。本文作者给大家介绍几种常用Java实现的机器学习库&#xff0c;快快收藏加关注吧&#xff5e; Java机器学习库表格 Java机器学习库整理库/平台概念…

Kubernetes 使用 Kube-Prometheus 构建指标监控 +飞书告警

1 介绍 Prometheus Operator 为 Kubernetes 提供了对 Prometheus 机器相关监控组件的本地部署和管理方案&#xff0c;该项目的目的是为了简化和自动化基于 Prometheus 的监控栈配置&#xff0c;主要包括以下几个功能&#xff1a; Kubernetes 自定义资源&#xff1a;使用 Kube…

Hadoop初体验

一、HDFS初体验 1. shell命令操作 hadoop fs -mkdir /itcast hadoop fs -put zookeeper.out /itcast hadoop fs -ls / 2. Web UI页面操作 结论&#xff1a; HDFS本质就是一个文件系统有目录树结构 和Linux类似&#xff0c;分文件、文件夹为什么上传一个小文件也这…

python: SQLAlchemy (ORM) Simple example using mysql in Ubuntu 24.04

mysql sql script: create table School 表 (SchoolId char(5) NOT NULL comment主鍵primary key&#xff0c;學校編號,SchoolName nvarchar(500) NOT NULL DEFAULT comment 學校名稱,SchoolTelNo varchar(8) NULL DEFAULT comment電話號碼,PRIMARY KEY (SchoolId) #主…

解放大脑!用DeepSeek自动生成PPT!

DeepSeek应用&#xff08;PPT篇&#xff09; DeepSeek作为当前最好的AI大模型之一&#xff0c;其强大的文本生成能力被广泛的应用于各个领域&#xff0c;本文我们来聊聊用DeepSeek来自动生成PPT。 一、DeepSeek & PPT DeepSeek本身没有直接生成PPT的能力&#xff0c;换个…

从0到1:固件分析

固件分析 0x01 固件提取 1、从厂商官网下载 例如D-link的固件&#xff1a; https://support.dlink.com/resource/products/ 2、代理或镜像设备更新时的流量 发起中间人攻击MITM #启用IP转发功能 echo 1 > /proc/sys/net/ipv4/ip_forward#配置iptables&#xff0c;将目…

docker独立部署milvus向量数据库

milvus镜像&#xff1a;国外封锁&#xff0c;国内源也不好用。基本上所有源都不能用 首先想到阿里云服务&#xff0c;但是阿里云国外服务器便宜的300~400呢。 基于成本考虑终于装上心心念念的milvus(*^▽^*) 安装 Milvus 安装 Milvus 独立版 wget https://raw.githubuserco…