1. C++常见笔试面试要点:
C++语言相关:
(1) 虚函数(多态)的内部实现
(2) 智能指针用过哪些?shared_ptr和unique_ptr用的时候需要注意什么?shared_ptr的实现原理是什么? (智能指针shared_ptr的用法、智能指针unique_ptr的用法)
(3) 特化和泛化
STL:
(1) vector、list、set、map内部实现以及异同,迭代器插入删除后vector和list的迭代器是否会失效?
(2) STL除了序列式容器和关联式容器,还有哪些值得学习的?
TCP/IP:
(1) TCP、UDP异同;
(2) TCP、UDP发送一段字符串,其中的发送过程有什么区别?本人理解:TCP有滑动窗口,流量控制,超时重传等机制。
数据结构:
(1) 链表的逆置(链表的逆置(又称反转));
(2) 链表有无环的检测,两个链表相交有无可能?相交的形态是什么样的?如何确定相交点?
本人理解:以上要点必须从根本上明白,理解,不能有糊涂的地方,因为面试官往往会由浅入深的提问,当你不明白一点后,面试官就无需再往下问了,直接确定你的水平了。
2. 常见问题:
(1) 你平时都看过一些什么专业相关的书籍?
(2) 项目中你解决问题最深刻的一次,怎么解决的,用了多长时间?
(3) 说说观察者模式(也可能是代理模式,单例模式,装饰模式等等)怎么用,以及你项目中哪些场合用到了?