首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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());}有一些忘了
点赞 102
评论 16
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
01-14 09:26
清华大学 Java
java面试重点总结
Java 面试看似问得很杂,实则始终围绕几个核心能力展开:语言理解、并发能力、底层原理、工程经验和问题分析能力。真正能拉开差距的,并不是背了多少题,而是是否建立了完整的知识体系。一、Java 基础不是语法,而是“设计取舍”面试中的 Java 基础,很少停留在 if、for 或继承语法层面,而是集中在 为什么这样设计。比如:equals 与 hashCode 为什么必须同时重写String 为什么是不可变的包装类型与基本类型的区别这些问题本质上都指向:对象语义、内存模型和集合设计。面试官想看到的不是定义,而是你是否理解 Java 在性能、安全性和一致性上的权衡。二、集合框架是判断“是否写过代码”...
查看19道真题和解析
点赞
评论
收藏
分享
昨天 10:00
门头沟学院 前端工程师
有赞前端 一、二、hr面
一面 40分钟 项目难点亮点深挖(思路和解决办法) 浏览器渲染,display、visibility这些内容对元素的重排、重绘的影响 setTimeout、Promise、requestAnimationFrame这些api的区别 react中通过useState维护了一个对象数组,如果要修改这个对象数组的某个值,应该如何实现? 通过不可变数据(让口头说源代码怎么写😂),通过扩展运算符 如果对象的赋值,如果不是浅拷贝,使用深拷贝的话有哪些影响 重渲染层面来说,深拷贝有什么影响吗 面试的时候说id一样就不会重新渲染,后面复盘的时候试验了一下,都会重新渲染,除非用m...
点赞
评论
收藏
分享
2025-12-03 09:34
南昌大学 Java
为啥现在这些b**s上卡学历都这么明目张胆了,还不是一家两家,给个100块钱的b工资还想卡92,谁给他的胆子😅,92的去一天干两小时家教逗小孩也不止100了,就业环境如此差了嘛可爱猫猫镇楼
牛牛爱吃草草:
逗小孩
点赞
评论
收藏
分享
2025-11-28 01:51
字节跳动_广告业务_后端(准入职员工)
字节开了
32k*15,这下我有不得不去的理由了
叁六玖:
我靠,对我来说是巨款了
点赞
评论
收藏
分享
01-19 16:05
门头沟学院 C++
工作是定了,但焦虑才刚刚开始……
收到了很多祝贺,但我却怎么也笑不出来。工作初定,意味着我人生接下来的两三年——甚至更久,已经被预订出去了。以前的迷茫,是因为无路可走;现在的迷茫,是因为道路全然既定。看着手里的Offer,深夜里我总忍不住问自己:这就是我想要的吗?难道只剩下早十晚七的打卡,和为了KPI奔波的疲惫?那个曾经发誓要环游世界、想安安静静写写东西、想在没人的地方吹吹笛子的自己,是不是从这一刻起,就要被永久封印在职场人的面具底下了?这大概就是成长的代价。我们用自由换取了稳定,用“无限可能”换取了“绝对确定”。而在这种巨大的确定性面前,我没有狂喜,只觉得惶恐。
你最近因为什么迷茫?
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
【评论得现金💰】26年度牛客评论活动起航!(试运行)
7130
2
...
第二期「创作模范」名单揭晓!速来围观
3196
3
...
AI 军火库
3142
4
...
腾讯后端日常实习二面(已OC)+一点随笔
2611
5
...
有赞前端 一、二、hr面
1872
6
...
实习久了,感觉人也麻木了
1693
7
...
好未来你个垃圾,配不上老子
1520
8
...
腾讯云智二面之后大概多久出结果呀
1391
9
...
实习生需要日薪多少?
1343
10
...
在学校可太难找面试地方了
1321
创作者周榜
更多
正在热议
更多
#
你最近因为什么迷茫?
#
13660次浏览
203人参与
#
AI coding的好用工具分享
#
4229次浏览
107人参与
#
上班以后,你还有哪些坚持的爱好?
#
1972次浏览
55人参与
#
实习怎么做才有更好的产出
#
2831次浏览
81人参与
#
你都在哪些场所面过试?
#
5111次浏览
85人参与
#
实习生工资多少才算正常?
#
4322次浏览
91人参与
#
实习心态崩了
#
100698次浏览
515人参与
#
你给AI提过哪些离谱的需求?
#
1985次浏览
74人参与
#
找工作以来,你最看不惯__
#
3334次浏览
77人参与
#
领导做过最不靠谱的事
#
5355次浏览
92人参与
#
哪些公司开春招了?
#
2300次浏览
34人参与
#
你最希望上岸的公司是?
#
181633次浏览
800人参与
#
华为保温
#
169884次浏览
643人参与
#
你觉得第一学历对求职有影响吗?
#
222414次浏览
1230人参与
#
刚入职就____,这样正常吗?
#
124622次浏览
665人参与
#
秋招有哪些公司要求提前实习
#
103069次浏览
547人参与
#
非技术岗投递进展
#
166725次浏览
1317人参与
#
新年的第一句祝福
#
53680次浏览
389人参与
#
华子oc时间线
#
1408621次浏览
6994人参与
#
当发现同事想辞职
#
13674次浏览
47人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务