卡伦特C++二面
二面是一个年纪稍微大点的男面试官,(后面知道是上海研发部老大)人很和善,超级好。
自我介绍之后,没问简历相关的(甚至没看感觉)先问我读过什么C➕➕书,我说就一本c➕➕primer plus,(其实没读多少,然后就看了些算法的。
C++部分:都在聊而不是提问,我哭死
因为前几天去当伴郎,现在更新会有记不住的问题
进程和线程在内存上有啥区别,在堆栈上都是共享还是独享的?
我定义一个类,里面有个char,那这个类占的内存是多大,我直接:“1字节”....然后他告诉我要分内存对齐和不对齐考虑,如果我再加个虚函数呢?那虚函数在内存上是在char的后面还是前面?怎么分配的?
为什么这么分配,“猜猜,没事”
const chat *和chat const *和chat * const区别
一个classA,定义一个ap(int a),假定a初值为0,现在有个classB,overread后B中a值为10,现在用classB,instance出一个抽象类,用A的方法调用ap,问你a的值是0还是10(我根本没听过,他让我猜猜,然后为什么这么猜,然后他很耐心告诉我因为啥)
算法:
给你一些点,三种算法确定是不是凸多边形,有个方法我说用直线找交点,他接着问怎么确定那条线。
整数变成字符串,不能用std里面的,比如string,我就基本的%10然后/10,他问我那你每次怎么获得新字符串,我说用'0'加mod出来的数然后存到一个字符串里再加到结果字符串上,他问我怎么加,如何确定你存储的内存地址,如何放进去(我觉得是不是问我如何存到连续内存上?)
然后就结束了,问我想在上海还是厦门工作,让我问了些想问的,我真的好想多跟他沟通交流,能在他手下工作太幸运了,我都感觉到能提升超级多。每次都不是停留在问题表面,而是去深挖底层和原理,太强了。我真的啥也不会哭死。不过我很惊喜的是二面过了,感谢呜呜呜。 #C++面经# #我的实习求职记录# #牛客在线求职答疑中心#
自我介绍之后,没问简历相关的(甚至没看感觉)先问我读过什么C➕➕书,我说就一本c➕➕primer plus,(其实没读多少,然后就看了些算法的。
C++部分:都在聊而不是提问,我哭死
因为前几天去当伴郎,现在更新会有记不住的问题
进程和线程在内存上有啥区别,在堆栈上都是共享还是独享的?
我定义一个类,里面有个char,那这个类占的内存是多大,我直接:“1字节”....然后他告诉我要分内存对齐和不对齐考虑,如果我再加个虚函数呢?那虚函数在内存上是在char的后面还是前面?怎么分配的?
为什么这么分配,“猜猜,没事”
const chat *和chat const *和chat * const区别
一个classA,定义一个ap(int a),假定a初值为0,现在有个classB,overread后B中a值为10,现在用classB,instance出一个抽象类,用A的方法调用ap,问你a的值是0还是10(我根本没听过,他让我猜猜,然后为什么这么猜,然后他很耐心告诉我因为啥)
算法:
给你一些点,三种算法确定是不是凸多边形,有个方法我说用直线找交点,他接着问怎么确定那条线。
整数变成字符串,不能用std里面的,比如string,我就基本的%10然后/10,他问我那你每次怎么获得新字符串,我说用'0'加mod出来的数然后存到一个字符串里再加到结果字符串上,他问我怎么加,如何确定你存储的内存地址,如何放进去(我觉得是不是问我如何存到连续内存上?)
然后就结束了,问我想在上海还是厦门工作,让我问了些想问的,我真的好想多跟他沟通交流,能在他手下工作太幸运了,我都感觉到能提升超级多。每次都不是停留在问题表面,而是去深挖底层和原理,太强了。我真的啥也不会哭死。不过我很惊喜的是二面过了,感谢呜呜呜。 #C++面经# #我的实习求职记录# #牛客在线求职答疑中心#
全部评论
恭喜你通过了卡伦特C++二面!面试官似乎非常注重底层和原理的理解,而不是只停留在表面问题上,这也是一个好的面试官。对于你提到的问题,我来简单解答一下:
1. 进程和线程在内存上的区别:
进程是操作系统资源分配的基本单位,每个进程都有独立的内存空间,而线程是进程内的执行单元,线程共享进程的内存空间。
2. 类的内存对齐和虚函数的分配:
类的内存对齐是为了提高内存读取效率,虚函数表一般是在类的最前面,虚函数指针指向虚函数表,而char类型的变量一般是在对齐后的第一个位置,所以虚函数表会在char变量的前面。
3. const char *和char const *和char * const的区别:
const char *表示指向const char类型的指针,指针指向的值不能被修改;
char const *与const char *等价;
char * const表示指向char类型的const指针,指针本身不能被修改,但指向的值可以被修改。
4. classA和classB的问题:
如果用classB调用classA的ap方法,a的值为10,因为classB中的overread操作修改了a的值。
希望我的回答能对你有所帮助,祝你在未来的面试中顺利通过!
入职了吗感觉怎么样?
哥们,你现在是实习吗
在哪投的简历兄弟
发 offer了吗
面了多久?
相关推荐
03-27 17:33
门头沟学院 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享