首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
earthaHDFS
京东_软件开发工程师
发布于上海
关注
已关注
取消关注
@贼贼困:
C++高频八股总结
超高频:1智能指针.我一般先说智能指针是什么,再具体介绍比如,智能指针是帮助程序员管理动态分配资源的一种工具,主要就是防止程序员忘记释放堆上资源导致的内存泄漏,本质是一个类模板,可以动态的分配任何类型的资源,在析构函数中在合适的时机释放该资源。具体分为unique_ptr(我喊独占指针或者unique pointer),shared_ptr(共享指针,sharedpointer)和weak_ptr独占指针就是同一时刻只能有一个指针指向动态分配的资源,内部禁止拷贝和赋值,但有移动构造函数相反的,共享指针就是同一时刻可以有多个指针指向同一个动态分配的资源,内部通过一个引用计数表示该资源被多少个指针指向。当一个共享指针离开作用域,会将引用计数减一,引用计数为0才真正释放资源。为了解决共享指针的循环引用问题 引入了Weak pointer,(不要主动展开循环引用,真的很难用文字表达!) 一个弱指针指向一个共享的对象时不会增加引用计数。细节我也不太理解 可以看这个贴子https://blog.csdn.net/sinat_31608641/article/details/107702175 2 vector和list一般先简单介绍,说说相同点,然后说区别比如,vector和list都是一个用来存放相同元素的集合不同点就 vector内存中连续存放,随机访问,插入删除复杂度高List不连续,链表形式存放,插入删除复杂低3 new 和malloc没什么好说的,百度就行,也可以先说相同点,都是用来动态分配内存的,new要先调用operator new再调用构造函数 而operator new函数里面其实用的也是malloc4 讲讲多态多态就是一个接口有多种形态,C++中有静态多态,动态多态,静态多态是函数重载和模板你要重点讲动态多态,从继承、虚函数,虚函数表来讲比如:多态一般指动态多态,C++是通过虚函数实现,具体的就,只要含有虚函数的类就会为该类生成一个全局唯一虚函数表,虚函数表中记录类中虚函数的入口地址,同时会在每个实例内存的开始生成一个虚函数表指针,指向虚函数表。而当一个子类继承一个有虚函数的父类后,同时也会继承父类的虚函数表,如果子类重写了一个虚函数,就会把虚函数表中该虚函数的地址改成重写后的版本。这样一个父类指针指向一个子类对象,想要调用某虚函数时,通过对象内存地址找到的是子类虚函数表,就可以调用子类的版本。这就实现了多态,即一个父类指针指向不同对象,调用相同的函数,表现出不同的形态。5. 指针和引用百度就行6 进程通信我一般先说最简单的 管道:匿名管道,命名管道,再讲讲特点 什么半双工,一端读一端写,。匿名管道用于有血缘关系的进程之间,代码里用pipe+fork 常见的 终端中的 管道符| 命名管道就是 内核缓冲区特殊的文件 没有关系也能通信然后说管道效率低 ,数据流没有格式巴拉巴拉,就有了消息队列, 消息队列可以存完就走,定义消息头消息体 巴拉巴拉。然后说消息队列效率还是低,引入了共享内存,将两个进程的虚拟地址映射到同一块物体内存,这样访问到同一个地址进行通信。直接操作内存效率高,但是要考虑同步和互斥等问题后面什么信号,socket简单讲讲7 static关键字百度就行, 笔试时我一般这么写静态全局变量: 将全局变量隐藏, 在外部文件不能访问该全局变量静态局部变量: 将局部变量存储在 静态存储区, 生命周期 扩大为整个程序的生命周期静态成员变量: 该成员变量为类中所有对象共有,类外初始化,全局唯一, 不需要实例化即可访问静态成员方法: 只能访问静态成员变量,没有this指针8 内存分区百度就行9 C++11新特性百度就行。右值,右值引用,移动构造必须会。其他匿名函数,auto等等高频:10静态链接,动态链接还会问你适用场景。你得先熟悉 编译的四个步骤 预处理,编译,汇编,链接。最后一步就是二进制库文件放进来。使用静态链接得先生成静态库,将一个cpp文件生成,里面一般就一些函数。静态链接就把所有函数全放到可执行文件中,所以可执行文件大一些。动态链接就是你生成库之后,可指向文件中记录下动态库函数的信息,运行可执行文件后,再从动态库中加载库函数,其实就是一行行代码,动态库一般加载在堆区和栈区中间好像。适用场景就说说优缺点,更新一个静态库后,还得重新链接生成可执行文件。动态链接更新了一般就不用。 但是动态链接因为要加载,所有运行会慢。静态链接体积大,浪费内存。同样的代码,会在很多可执行文件中存在11 进程同步百度就行12 析构函数能不能虚函数不能。要清楚是在多态的情况下不能,一个父类指针指向子类对象叫多态。如果子类中有新成员变量而析构函数不是虚函数,调用的就是父类的析构函数,导致子类新对象得不到释放。13 进程和线程百度就行。多加自己理解,不要硬背分配资源最小单位,cpu调度最小单位。比如,进程就是可执行程序一次运行,最初只有进程,但是进程通信效率低,所以引入线程让cpu调度,粒度更低。一个进程有多个线程组成。然后就 进程共享什么,线程共享什么,多进程多线程,巴拉巴拉。14 struct和union15 编译四步,每步干什么16 #define const17 迭代器失效关注vector扩容。18 extern两个作用: 表示声明。当你想用某个变量,但定义在其他地方,就可以先声明一下,编译就不会报错。链接的时候就能找到了还有C++用C,和C用C++,百度百度,自己尝试实现就能理解 剩下的都是 频率不多也不少的比如, 内联函数,怎么禁止动态分配内存,怎么在栈上动态分配内存,map,set,unordered_map底层,单例模式,一些锁,等等 https://interviewguide.cn/ https://www.iamshuaidi.com/这两个八股网站建议多刷刷。C++还会问很多linux知识。还会问gdb,内存泄漏检测等等考验你有没有实际经历.还有其他一些刁钻的八股就纯看能力了。 webserver项目方面:常见的epoll底层,epoll,select,pool肯定要会,其他http,报文结构,字段,tcp ,udp常见的网络知识肯定要会。其他还有三次握手,四次挥手怎么体现你服务端开启后,就一直监听嘛,直到一个客户端调用connect,然后你accept得到一个fd。实际上,不管有没有accept,三次握手内核已经帮你完成,可以通过netstat等和代码配合查看出来。你调用accept只是将这次连接从tcp全连接队列取出来。关闭连接时,一端调用close,另一端内核自动接收这个报文,处于close_wait状态,然后代码中判断出来对方关闭,自己也调用close。里面细节很多,可以自己多研究。向已经关闭的tcp连接发送数据这个涉及缓冲区和sigpipe信号。Tcp是有缓冲区的,你send是写到缓冲区里,缓冲区没满就能写,就正常返回。Read读缓冲区,缓冲区有数据就能读。我自己测试发现,当对端关闭了,你调用send,这时可以正常返回,实际只是写到缓冲区中。然后内核尝试发送,然后发现不能发送。你再一次send,内核已经知道了,就产生sigpipe信号,进程崩掉。 以上内容纯属个人理解,不保证正确。
点赞 86
评论 6
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
05-28 22:32
门头沟学院 前端工程师
作业帮内推 作业帮内推码
作业帮素养2025校园招聘正式启动! 😆面向23-25届同学,两大项目全面开放招聘! 💚线下小班主讲老师!💙领航计划-竞赛教练!两大项目同步开启! 🆙新校区首次招聘!超多的发展机会等着你! 📍工作地点:广州、济南、佛山、深圳、成都、重庆、青岛、苏州、长沙、武汉、南昌、天津、南京、杭州,更多的城市陆续开放中… 🤩内推投递:https://app.mokahr.com/m/campus_apply/zuoyebang/148220?recommendCode=DSmXKWBD&hash=%23%2Fjobs#/jobs
投递作业帮等公司6个岗位 >
点赞
评论
收藏
分享
05-27 21:33
门头沟学院 算法工程师
小鹏汽车抛弃激光雷达,重点发力AI鹰眼视觉方案,视觉感知算法大有可为!
作为最早让激光雷达量产上车的小鹏汽车,现在宣布要放弃激光雷达了!早在发布小鹏P5的发布会上,小鹏汽车就曾说:激光雷达的主要作用是提高自动驾驶的安全性,视觉感知算法更加重要!此外,蔚来的子品牌乐道,也加入纯视觉感知的技术流派,其智驾解决方案也并没有安装激光雷达传感器。其实,随着现如今视觉感知算法的快速发展,摄像头识别能力提升,纯视觉的识别准确率与激光雷达相近。同时摄像头的部署相对于激光雷达而言成本更低,对于消费者而言,智驾方案的价格也会更低,所以纯视觉方案在产品上也更加有优势。你觉得小鹏放弃激光雷达的做法是否激进呢? 作为一名24届上岸自动驾驶感知算法的学长,我将自己在秋招中积累的面试经验和心得...
投递小鹏汽车等公司6个岗位 >
点赞
评论
收藏
分享
04-28 17:11
北京邮电大学 前端工程师
高德前端强度真大啊 全是手撕
鼠鼠是铸币😭😭😭
点赞
评论
收藏
分享
05-25 18:29
电子科技大学 Java
27日常实习简历求拷打
项目是黑马点评+12306😖😖,感觉全都是漏洞不敢投
弦五Strings:
双九+27,大厂收割机
点赞
评论
收藏
分享
05-27 22:19
字节跳动_飞书_前端开发实习生(实习员工)
挑战 26 届最速转正失败——我做错了什么
(黑话警告⚠️:hc=岗位数量, mt=导师, ld=直属领导, cr=代码审查)25年1月,我加入了字节某前端团队,并期望能在这里待到秋招并尝试转正。然而,就在上周,ld 找我1v1,告诉我,我的能力和团队预期不太匹配,并和我劝退。晴天霹雳吗?肯定是有的。那一刻,脑子里嗡嗡作响,各种情绪翻涌。但冷静下来想想,这几个月,自己在能掌控的范围内,确实有不少地方做得不尽如人意。所以,我想把这段不算成功的经历复盘一下,希望能给同样在努力转正的你提个醒,避开我踩过的坑。一、ld 的要求要注意刚进组时,ld就和我聊过转正的事。我当时发问:“咱们这儿有hc 吗?” ld没直接回答,只是说:“看能力,能力到了...
牛客上的彭于晏:
过来人告诉你,入职后要做的第一件事儿不是说主动找活儿做,你要先学会融入团队,摸清ld的性格,投其所好。然后才是展示你的能力,能力上可以说技术或者业务,以业务能力为主,技术能力为辅。优先保证自己对业务需求的开发保证质量效率,然后再谈技术的问题,不要你觉得啥啥啥不行就想着整体优化了(发现校招生最喜欢干这事儿),我工作快5年了发现搞这种的最后都没啥好的结果,产出没有还引入新的bug,校招或者实习的水平看到的问题别人看不到嘛?为什么别人不去搞?浪费时间还没收益的事儿不要去做,技术上的能力体现在对于一个新需求,在不符合现在业务发展的架构设计上,你能拿出好的技术方案同时能考虑到后续业务发展逐渐将技术架构引入合理的架构,这是一个漫长的过程而不是一次性的
牛客在线求职答疑中心
职场捅娄子大赛
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
上午拍毕业照,下午拍结婚照!牛友祝福我们吧!
8270
2
...
本科四年,我决定在即将毕业时转行
5624
3
...
以为走散了,命运却又把我们安排到一起
5389
4
...
28届学院本女生走java中~
4696
5
...
亲爱的公司,你好!
4686
6
...
没有人关心你在学校有多牛逼
2579
7
...
记录第二次面试 京控信息
2120
8
...
滴滴春招
2114
9
...
26届选手终于在五月底拿到offer啦!!!
2107
10
...
0实习
2037
创作者周榜
更多
正在热议
更多
#
写给毕业5年后的自己
#
5805次浏览
112人参与
#
机械制造秋招总结
#
50859次浏览
493人参与
#
华泰证券Fintech星战营
#
171076次浏览
202人参与
#
职场捅娄子大赛
#
326913次浏览
3310人参与
#
机械人春招想让哪家公司来捞你?
#
337486次浏览
3059人参与
#
一人一个landing小技巧
#
62603次浏览
983人参与
#
你的论文盲审过了没?
#
102815次浏览
1467人参与
#
硬件应届生薪资是否普遍偏低?
#
69845次浏览
505人参与
#
你的秋招第一场笔试是哪家
#
127569次浏览
1386人参与
#
毕业后不工作的日子里我在做什么
#
172867次浏览
1523人参与
#
如果再来一次,你还会学硬件吗
#
122896次浏览
1400人参与
#
考公VS就业,你怎么选?
#
58405次浏览
390人参与
#
国央企笔面经互助
#
130180次浏览
1082人参与
#
毕业季等于分手季吗
#
19888次浏览
253人参与
#
好好告别我的学生时代
#
52435次浏览
944人参与
#
海信求职进展汇总
#
65649次浏览
363人参与
#
美的求职进展汇总
#
275053次浏览
1955人参与
#
大学最后一个寒假,我想……
#
38898次浏览
501人参与
#
晒一下我的毕业照
#
36691次浏览
415人参与
#
HR问:你期望的薪资是多少?如何回答
#
40880次浏览
527人参与
#
记录实习开销
#
34006次浏览
215人参与
牛客网
牛客企业服务