CVTE的C++开发工程师面经
首先是自我介绍,然后问我让我印象最深的项目,我就讲了爬虫华为服务器支持的操作系统的那个项目,讲并行,讲完之后问我的收获,就回答了进程间的通信和加锁同步以及多线程编程。问我用的是什么锁,一下子懵逼了?不记得锁有哪几种类型了。之后问我如果再重新做这个项目,我会改进那些地方?我就讲了下自己在做这个项目中的优化和改进的地方。后问我平时通过什么方式来学习,我就说看书,边看边写代码。
平时碰到问题怎么解决?我回答说先自己想,然后百度,不会的话就问同学,然后面试官继续说还没解决呢?我就说没有解决不了的问题,说明我没问对人,然后面试官露出了一抹笑容。哈哈。。
然后项目过完了就开始C++基础知识,以下问题可能记忆不全,感觉问了挺多。
多态实现原理?
this指针是什么?
普通函数和成员函数的区别?
构造函数可以是虚函数吗?
析构函数可以是虚函数吗?
share_ptr实现原理?
share_ptr的引用计数存在哪?这个没回答出来。
构造函数和析构函数可以调用虚析构函数吗?不可以的话那是在什么时候报错?虚函数表指针在什么初始化?如果是对象最开始的时候初始化那应该可以调用啊?(这块被搞的好晕)
TCP和UDP区别以及应用场景?
TCP粘包如何处理?不会,我竟然还纠正面试官读zhan,真蠢!!
map[]和find区别?这个完全懵逼,我一下没反应过来,竟然觉得map没有[]方法。
vector扩容机制?
vector删除元素的时候会不会释放内存?我回答不会,然后问那内存岂不是越来越大?
vector遍历元素时,如果要删除一个元素,如何处理迭代器?这个没回答出来,没get到面试官的意思。
new和malloc的区别?
两个栈实现一个队列?我讲了下思路,没让写代码。
select和epoll的区别?
select如果监听到多个套接字时如何处理?这个没太明白面试官的意思,我问他是指并发处理?他说是,然后我就更不会了。汗。。
总结就是,问的很细,实习回来很多忘了,面试官应该有一个题库,节奏很快,不会就直接就下一个问题,如果我会那就继续深挖。
#广州视源电子科技股份有限公司##C++工程师##面经##校招#