360第一次面試(電面)未完待續

1 內部名稱

C和C++語言實現都會按照特定的規則把用戶(程序員)定義的標識符(各種函數,變量,類型,以及命名空間)轉換爲相應的內部名稱。當然,這些內部名稱的命名方法還與用戶爲它們指定的連接規範有關,比如使用C的連接規範,則main的內部名稱就是_main。

2 C爲什麼不支持重載,C++支持重載

部分採摘至《高質量c++/c語言》

其實這個原因,還是要從C和C++的命名規則來看

在C語言中,採用了極其簡單的函數名稱規則:僅在所有函數名的前面添加前綴“_”,從唯一識別函數的作用上,實際上和不添加前綴沒什麼區別

但是C++則採用了不同的重命名規則(Name-Mangling)。同名函數可以根據函數的參數類型,參數個數,參數順序等等生成不同的內部函數名,從而重載函數。例如在在他們的前面分別添加所屬各級作用域的名稱(class,namespace等),及重載函數經過編碼的參數信息(參數類型,個數),作爲前綴或者後綴,產生全局名字Sample_1_foo@pch@1、Sample_1_foo@int@1、Sample_2_foo@pch@1、Sample_2_foo@int@1。這樣就可以區分了。另外,標準C++的不同實現會採用不同的Name_Mangling。

c++內存佈局

智能指針的用途(以及內部的大概實現)

仿函數

C++特點是什麼,多態實現機制?(面試問過)多態作用?兩個必要條件?

面向對象的三個基本特徵,並簡單敘述之?

爲什麼要把基類的析構函數定義爲虛函數

多態的用處(泛型)

C++虛函數是如何實現的?

進程間通信的方式

進程內存空間分佈情況

線程間同步的幾種方法

各種Linux下的命令(查看磁盤使用率,TCP抓包等等)

虛擬地址空間有多大

面試題
1-100中少一個數,快速缺的找出這個數
1-100中缺少兩個數,找出這兩個數

TCP半關閉

http有幾種方法(常用的 GET,POST,PUT…)

TCP爲什麼是四次揮手

設計模式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章