最近公司業務的事情很多,忙得焦頭爛額。另外國外新冠疫情開始越來越嚴重,美股也熔斷了,自己手頭的股票一直在跌,每天都是綠油油的一片,好在心態還在,畢竟也算是老韭菜了(捂臉),不聊了,直接進入主題。
下面開始總結一下網易引擎開發崗的面試。
這次的面試官有兩位,先是互相介紹自己,這裏贊一下,兩位面試官態度修養很好。然後由我開始講述項目經驗。
我的簡歷一共寫了4個項目,每個項目都有問到具體的業務流程和技術難點,問得比較細。大概半個小時後,開始進行技術上面的問答。
1、說一下c++基類和子類的構造函數執行順序。
:c++中,先構造基類,再構造派生類。
2、那析構函數呢?
:與構造函數相反,先析構派生類,再析構基類。
3、多態是怎麼回事
:可以通過基類指針調用派生類的接口。主要通過virtual關鍵字實現,在運行時動態綁定。
4、new一個對象後,它的數據成員的初始化順序?
:回答了自上而下,與聲明順序有關。
百度答案:
成員變量在使用初始化列表初始化時,與構造函數中初始化成員列表的順序無關,只與定義成員變量的順序有關。
不使用初始化列表初始化時,在構造函數內初始化,與成員變量在構造函數中的位置有關。
如果基類中和派生類中存在靜態變量,會優先初始化基類的靜態變量,再到派生類的靜態變量。然後到基類的成員變量,再到派生類的成員變量。
5、爲什麼基類的析構函數需要加上virtual?
:要想通過基類的指針釋放派生類對象,必須將基類的析構函數設置爲virtual。
詳情:https://blog.csdn.net/c_shell_python/article/details/104831498
6、c++模板用過麼,有哪幾種模板?
函數模板和類模板
7、c++11瞭解麼,用過哪些特性
for(int &t:array){} 、thread、auto等
8、說一下qt的信號槽原理
9、爲什麼信號emit出去後,槽能夠接收到?
10、如果是異步的呢,信號槽是如何聯繫的?
11、說一下在OSI模型中,有哪7層結構,順序如何?
應用層-->表示層-->會話層-->傳輸層-->網絡層-->數據鏈路層-->物理層
12、tcp和udp的區別
13、tcp是如何保證可靠的服務?
14、tcp三次握手和四次揮手分別介紹一下
問題12、13、14回答-->傳送門:https://blog.csdn.net/c_shell_python/article/details/96199834
15、tcp黏包是怎麼產生的,怎麼解決這個問題?
產生原因:TCP粘包就是指發送方發送的若干包數據到達接收方時粘成了一包,從接收緩衝區來看,後一包數據的頭緊接着前一包數據的尾。
解決方法一:可以每次發送同樣大小的包,,過小的包,後面部分用固定的字符'\0'進行填充
解決方法二:每個包都給有固定的格式,比如開始符,結束符
16、git用過麼,介紹一下使用git最複雜的一個指令
:目前使用sourcetree工具
17、在開發中,你是如何分析需求的,從哪些角度分析
:站在用戶,即最廣泛使用者的角度考慮問題。
18、平常喜歡看哪些技術書籍,能介紹一下內容麼
c++ primer plus、Effective C++