首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
rogn
武汉大学 C++
发布于湖北
关注
已关注
取消关注
m
@宁宁天下第一:
日常实习C++面经汇总与教程
最近忙了大概一个月,终于找到实习了,这里把自己面试过程遇到的问题记录一下。ps:很多东西我之前都写过文章,所以重复的地方就直接贴上过去的文章的链接了。这里只放上有关C++的内容,其它的例如项目啊,编译链接工具的使用就因人而异了。C++中的多态以下是一个常见的多态的场景struct A { virtual void foo() = 0;};struct B : A { virtual void foo() { cout << "this is B\n"; }};struct C : A { virtual void foo() { cout << "this is C\n"; }};struct D : A { virtual void foo() { cout << "this is D\n"; }};int main() { vector<A*>v = { new B{},new C{},new D{} }; for (auto& it : v) { it->foo(); }}这里我们用到了虚函数严格鸽:C++虚函数表的位置——从内存的角度对于C++中对象的内存模型,我的建议是用C语言模拟一个严格鸽:C语言实现虚函数/继承/封装这里一个经常遇到的问题,为什么我们说虚函数慢?考虑到,函数在执行的时候,需要进行跳转(汇编的角度而言就是动cs:ip 而虚函数,需要先去虚函数表里面,然后在跳转到相应的函数上,也就是跳转的次数多了,对cache不友好。但是,最重要的是,虚函数不能进行内联优化。请记住,C++的编译器的优化水平很高,但是对于虚函数这种“运行期”确定的函数,是不能依靠编译器进行编译优化的。这里提到了,运行期,和编译期。这两个概念在后面也会提到。那么如何解决这个问题呢?我们可以使用编译期多态来CRTP来解决。严格鸽:现代C++学习—— CRTP 编译期多态(CRTP不是万能的,有些东西必须是运行期的智能指针智能指针的实现就是RAII现代C++如果非要说是C with xxx的话,那么就是 C with RAII严格鸽:现代C++学习—— 什么是RAII严格鸽:现代C++学习 —— 为什么需要std::move至于智能指针的具体实现,网上有很多,大家自己去看就可以了。谈及智能指针,最好也谈以下所有权的概念例如,我现在有个资源,然后我有个函数,我是选择把所有权给这个函数啊,还是把所有权留在原来的作用域。(这个内容在上面的文章就有提及。模板模板就是面向编译器的编程,我们通过编写模板相关的代码,让编译器帮我们根据提供的类型,生成对应的代码。另外,C++的类型系统是十分强大的,所以有关模板的内容希望大家好好学习。C++模板学习实践 (这是个专栏,内容可能比较多,看是看完肯定有收获的另外,有关模板的发展(可以我的文章里面的模板元都是const static 这种比较old的。首先是模板变量和模板类型,过去我们需要::value,::type 现在可以直接定义了。对于标准库,_v 就是 ::value , _t 就是::type ( 所以学一学old版本的很有帮忙的还有就是constexpr 函数,对于编译期计算,可以直接constexpr 函数解决。另外就是C++20的概念与约束了过去我们需要用 严格鸽:现代C++学习——模板SFINAE 来表示一个鸭子类型。鸭子类型:我希望一个类型具有这样的变量,这样的函数。。。 例如下面我们就约束了类型T是一个int或者一个具有size函数len成员变量的类型。template<typename T>concept is_int = is_same_v<T, int>;template<typename T>concept need = requires(T x) { x.size(); x.len;};template<typename T>requires(is_int<T> || need<T>)void foo(T x) {}int main() { foo(1); struct A {void size();int len;}; foo(A{}); struct B { void Size(); int Len; }; foo(B{});//编译失败,ide会报错}上面是几个经常被问道的内容,属于基础了,下面放上几个杂项。lambda严格鸽:c++函数进化史 (函数,函数指针,function,仿函数,lambda)lambda编译器帮我们生成的匿名的仿函数variantvariant是可以析构的union严格鸽:C/C++ union 使用教程 (常见操作与缺陷)严格鸽:现代C++学习——实现多类型存储std::variant类型擦除在问std::any的实现的时候问的。在C语言总,一般是用void* ,然后自己维护一个type严格鸽:现代C++学习——实现动态类型std::any模板元编程就让写了个斐波那契数列但是你可以归并排序!严格鸽:模板元 编译期 链表 归并排序多线程问了一些实现什么的原子类型是用cas (compare and swap) 实现的。其它的锁都是基于原子类型的操作std::call_once之前没有听说过std::call_once - cppreference.compimpl为了加快编译时间的,但是我没这么用过(编译时间不是用来摸鱼的吗有个面试官说过,可以用编译参数来控制。堆,栈空间堆是os帮我们维护的,栈空间编译器帮我们维护了。注意不要写出这样的代码int* foo() { int arr[100]; return arr;}异常安全没有怎么用过(最多几千行的代码,用啥异常啊)可以了解下std::optional 与 std::expectedEffective C++ 29:追求异常安全的代码关于noexcept,可以看下这个代码void foo1() noexcept;void foo1() noexcept(noexcept(foo1())) {}void foo2();void foo2() noexcept(noexcept(foo2())) {}int main() { constexpr bool x = noexcept(foo1()); constexpr bool y = noexcept(foo2());}有一些忘了
点赞 101
评论 16
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
10-29 21:48
魔门塔(苏州)科技有限公司_感知算法工程师(准入职员工)
momenta内推momenta内推
momenta自动驾驶C++日常实习一面面经流程时间线:3.25HR联系约一面3.25晚7点一面3.26早上通知一面通过约二面3.26下午5点二面3.27早上HR沟通入职时间,已OC。一面流程:无手撕50min1.自我介绍2.面试官介绍部门职责(不涉及算法开发,是否能接受)3.简历浅挖(面试官大概率不是规控方向的,对项目可能了解不多,后续了解到是电气背景的)(1)hybird启发项如何设计(2)介绍latticeplanner流程(3)项目中涉及哪些传感器,如何获取heading angle。4.一系列C++,Linux,ROS八股(只列出部分还记得的)1.听说过rvo嘛2.知道raii嘛,原...
点赞
评论
收藏
分享
10-29 22:30
吉林大学 Java
计算机行业炮灰水平
同专业学长学姐,去互联网大厂的起薪 15k+,去国企 IT 岗的也有 12k+,就连去中小厂的都基本 13k 起步😤 我投的传统行业技术岗,拼死拼活拿到 1Woffer,本来还挺开心,结果逛了圈牛客直接破防,同是校招生,行业差距怎么就这么大啊!
喵喵喵6_6:
应该哪里不对吧,大厂都是20k以上的,10k那种对于985本的学生基本就是点击一下过了笔试就送的
,我前两天刚拿了一个11k,笔试完第2天就打电话了,非科班。坏消息是c++岗开这么低真是刷新认知了
校招生月薪1W算什么水平
点赞
评论
收藏
分享
09-26 19:45
门头沟学院 Java
学院本秋招
今日份OC * 10
饿魔:
恭喜恭喜
点赞
评论
收藏
分享
09-08 19:12
东华大学 C++
秋招提前结束啦ε=ε=(ノ≧∇≦)ノ
🥹
想要嗷佛:
举报了
点赞
评论
收藏
分享
10-27 15:38
小红书科技有限公司_前端开发(准入职员工)
转码4年,一场酣畅淋漓的绝地求生
一切的起点,“自救”秋招阶段性地结束了。复盘时,总会想起不同公司、不同岗位、不同轮次的面试官,都会问出的那两个问题:“你为什么要跨考来计算机,从事互联网相关的工作?”“你为什么选择前端,而不是后端或算法?”从第一次听到时的惶恐自卑,到后面的侃侃而谈,我也不过是做了一些标准化的准备,能流利地吐出一些漂亮的场面话罢了。实际上的原因其实从未改变,也永远不可能骗过我自己。那只有两个字:自救。跨考到计算机是为了自救,选择前端也是为了自救。这些都是当时的我,能为自己做出的、唯一的“局部最优解”。深渊、猛子与弃船读过我其他帖子的朋友可能知道,我的本科并非科班,而是水利下的一个二级学科。整个大学四年,唯一和计...
LoyAngel:
时也,命也。这是最近我也一直在跟别人说的话,很多时候市场比所谓的努力或者能力要重要的太多
。
苦尽甘来时,再讲来时路
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
造谣刑法老师媚男,反被老师法院起诉
9909
2
...
秋招小失败-后端小小劝退(大结局)
6792
3
...
9本秋招后端收获9+offer, 我做对了什么?
5397
4
...
你们说,人会一直倒霉吗?
3530
5
...
秋招能拿多个大厂offer的其实就两种人
2144
6
...
好想被坚定地选择
1416
7
...
cvte体验实习
1349
8
...
造谣老师媚男,不料炼丹炉炸了
1233
9
...
团子今年是不是普遍涨薪了?开水团变甜了?
1201
10
...
牛客计算机考研题库全面升级,408真题+复试机试题等你来刷!
1153
创作者周榜
更多
正在热议
更多
#
HR问:你期望的薪资是多少?如何回答
#
67484次浏览
653人参与
#
我和mentor的爱恨情仇
#
78104次浏览
431人参与
#
“vivo”个offer
#
41956次浏览
288人参与
#
打工人的精神状态
#
98799次浏览
1289人参与
#
被同事甩锅了怎么办
#
24415次浏览
100人参与
#
你见过哪些工贼行为
#
28863次浏览
141人参与
#
一人一个landing小技巧
#
125825次浏览
1457人参与
#
你的秋招第一场笔试是哪家
#
258976次浏览
2026人参与
#
满帮集团求职进展汇总
#
6905次浏览
68人参与
#
考研失败就一定是坏事吗?
#
149877次浏览
1081人参与
#
vivo工作体验
#
29452次浏览
125人参与
#
和mentor 1on1 都聊什么?
#
2494次浏览
21人参与
#
哪一瞬间觉得自己长大了
#
39723次浏览
494人参与
#
上班后和你想的一样吗?
#
88275次浏览
671人参与
#
校招生月薪1W算什么水平
#
43786次浏览
237人参与
#
实习吐槽大会
#
386913次浏览
2156人参与
#
如何准备秋招
#
64878次浏览
830人参与
#
你想留在一线还是回老家?
#
62950次浏览
537人参与
#
工作后明白的那些道理
#
23168次浏览
225人参与
#
数字马力求职进展汇总
#
206820次浏览
1636人参与
#
我是面试官,请用一句话让我破防
#
29259次浏览
133人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务