面试系列(二十):金山云 C++开发

一面

1.C++中的继承,在祖父类、父类和子类这样一个场景中,子类对象的空间构成?
 
虚函数给对象空间造成的影响?
 
虚函数表的组成?
 
2.手撕代码
  • 一个数组,其中元素有正有负,求最大子段和(连续子数组的最大和)
  • 一个数组中有2N+1个元素,其中2N个元素相同,只有一个元素与其他元素不同,请你找出这个不同的元素?
3.多线程
 
请自实现一个生产者-消费者模型,仓库中存放int型元素,当元素个数>20时才可以消费,当元素个数<50就生产,仓库中的初始元素个数可以为20~50中间一个数量。生产者线程和消费者线程可以有多个。先说明需要考虑哪些问题,以及使用什么数据结构。
 
这里面,阻塞的话用什么实现?while还是sleep?它们有什么区别?
 
4.智能指针-shared_ptr
 
智能指针是线程安全的还是非线程安全的?
 
shared_ptr中都实现了哪些方法?
 
5.内存管理
 
场景:给定一个1G大小的空间,在一个循环的程序中,每次都会申请一个大小为100字节的string对象空间,使用完再释放。在每一次循环中,申请的空间个数可能不等,这一次多申请几个,下一次少申请几个。每一次循环中,在释放空间时可能只释放其中的几个空间。在这样一个模型中,如果做好空间管理?
 
面试官指出,这个内存管理问题在python里面有非常成熟的解决方法,让了解一下其底层实现。
 
 

二面

1.自我介绍
 
2.项目介绍
 
3.TinyHttpd讲一下?
 
4.I/O多路复用模型:select、poll和epoll的区别?
 
5.动态库和静态库的理解和区别?
 
6.Linux下进程间通信的方式有哪几种?
  • Linux下常见的信号
7.印象中面试官小哥问了很多Linux下网络编程的东西,都是比较基础的东西。
 
8.你有什么要问的?
 
 

三面

1.自我介绍
 
2.项目介绍
 
3.项目中遇到的内存泄漏和内存越界问题?
 
4.如果在平时写程序时避免或者检测到这种内存泄漏和内存越界问题?也就是你如何自己实现一个第三方检测工具?
 
5.你有什么要问的?
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值