C++面试题

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

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

相关推荐

评论
36
216
分享
牛客网
牛客企业服务