C++面试题

记录几个C++比较细的问题
1、虚函数表共享问题
2、空指针能访问成员函数吗? ex: A* p=nullptr;p->f();
3、sizeof(lambda表达式) 的值?
4、memset(this,0,sizeof(*this))合法吗?

更新:加入一个牛友评论的问题
5、如果在构造函数里面调用了一个该类的虚函数,会发生什么?
全部评论
cpp的终点:变成人肉编译器?
4 回复 分享
发布于 2024-09-20 23:10 上海
最后三个光子一面全问了
4 回复 分享
发布于 2024-09-19 21:42 重庆
2.空指针可以访问成员函数,不可以访问成员变量,因为存储的位置不一样
3 回复 分享
发布于 2024-09-19 18:37 广东
2. 能访问, 成员函数本质是一个普通函数加一个类的 this 指针参数, 函数本身存在 text 段, 所以类对象能直接访问, 貌似可以这样理解?
1 回复 分享
发布于 2024-10-08 09:08 北京
第二个:对象的成员变量和成员函数存放位置不同,成员变量是在对象内存内的,虚函数导致有虚函数指针这个隐式成员变量,如果空指针不涉及到成员变量和虚函数,那么即空指针并没有访问对象的内存,所以没事。 我理解的不知道对不对!
1 回复 分享
发布于 2024-09-20 15:26 陕西
sizeof(lamda表达式) 的应该会和捕获的变量类型以及数量有关吧,然后再考虑内存对齐问题
1 回复 分享
发布于 2024-09-19 21:14 四川
第一个要达到什么程度呢?就是调用继承类就指向虚表对应的位置就行了吗?
点赞 回复 分享
发布于 2024-11-17 23:39 四川
深度探索C++对象模型
点赞 回复 分享
发布于 2024-11-04 15:13 辽宁
第二个空指针是UB
点赞 回复 分享
发布于 2024-10-15 23:00 广东
我比较好奇第一个,虚函数表这个要回答到什么程度? 是说,一个类用一个虚函数表就行了,还是有更深的。
点赞 回复 分享
发布于 2024-10-09 16:21 辽宁
佬,我昨天遇到一个问,如果在构造函数里面调用了一个该类的虚函数,会发生什么,这种怎么搞呀我只知道构造函数不能是虚的
点赞 回复 分享
发布于 2024-09-21 11:28 陕西
这几个问题好难,一个也答不上来
点赞 回复 分享
发布于 2024-09-21 10:41 陕西
m
点赞 回复 分享
发布于 2024-09-21 00:47 广东
第四个被问到过,没答出来
点赞 回复 分享
发布于 2024-09-20 08:41 山东
第二个前几天我就被问到了😭
点赞 回复 分享
发布于 2024-09-19 21:32 陕西
有没有大佬给个答案
点赞 回复 分享
发布于 2024-09-19 21:03 上海

相关推荐

11-03 15:23
已编辑
合肥工业大学宣城校区 C++
先自我介绍 八股文:1. IO多路复用2. epoll水平和边缘模式(之前看过但是忘了没答上来)3. 虚函数位置,在类还是实例上(答错了,还问我是否确定,我坚定错误答案⊙﹏⊙)4. 移动语义、STL中是不是所有容器都支持移动语义5. TopK问题(之前学过快速选择算法,但是一回答就忘记了╯︿╰),如果用暴力搜索和时间空间复杂度是什么6. QTimer如何只触发一次(只记得一个shot,后面提示是否是singleshot才想起来)7. Qt视图可不可以关联多个Model8. 多进程、多线程通信9. 智能指针有哪些10. 线程同步、死锁排查方法11. 依赖注入项目:1. 写过设计文档吗?设计文档、方案设计文档怎么写(写过,回答了一些步骤)2. 对C/S架构了解(不了解。。。)3. 项目用了哪些设计模式(回答了单例、工厂、代理、观察者等)4. CPU跑满后你是怎么排查问题的(回答用VS的性能探测器)5. 数据库设计、优化会吗(回答了只知道基础的用法,就没往下问了)6. 如果界面交互后要实现某些功能,写在哪里(没听懂◑﹏◐)7. 内存泄漏怎么排查的?(回答用了VLD)8. 源码管理工具git熟悉吗(回答以前公司用的svn,对git不太熟悉)9. 其他就是项目技术实现等(回答的一般,可能解释不清楚)结果:面试官挺友好的,整个过程(1.5h)还算轻松。不知道算不算通过,以为结束了,但是两天后接到二面的通知了。
查看21道真题和解析
点赞 评论 收藏
分享
评论
40
221
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务