C++面試問題記錄
1、多型性都有哪些?(靜態多型和動態多型,然後分別闡述虛擬函式和函式過載。)
2、動態繫結是怎麼實現的?(就是基類指標或者基類引用和派生類指標或者派生類引用的轉換問題。)
3、C++中的四種類型轉換有哪些?(四種強制型別轉換,分別舉例子說明。)
4、操作符過載(+操作符過載),具體的如何去定義?(讓把操作符過載函式原型說一下。)
5、記憶體對齊原則是什麼?(原則是什麼,舉例子說明一下。)
6、模板是怎麼實現的?(舉例子。)
7、指標和const 的用法?(就是四種情況說明一下。)
8、虛擬函式、純虛擬函式、解構函式和虛解構函式?(純虛擬函式如何定義的,為什麼解構函式需要定義成虛擬函式。)
9、行內函數是什麼意思?(講一下行內函數和巨集定義的區別,以及優點。)
10、const 和 typedef 的區別?(主要講const 的用處,有哪些優點。)
11、排序演算法有哪些?快速排序是什麼實現的?最好時間複雜度、最壞時間複雜度、平均時間複雜度?
12、連結指示:extern “C” 的作用是什麼?
13、C語言和C++語言有什麼區別?(大致講一下繼承、多型、封裝、異常處理等。)
14、你有什麼需要問我的?
1、strcpy 函式編寫?(這個必須很熟悉。)
2、資料結構中,二叉樹的非遞迴遍歷?(現場畫圖講解。)
3、C++中的四種類型轉換機制?(必須很熟悉。)
4、繼承機制中物件之間是如何轉換的?(就是指父類物件和子類物件之間的轉換以及父類指標或引用與子類指標或引用之間的轉換。)
5、繼承機制中,引用和指標是如何轉換的?
6、虛擬函式、虛擬函式表裡面的記憶體是如何分配的?(必須要會。)
7、如何實現只能動態分配類的物件、而不能定義類的物件?(牛客網上題目,只能靜態分配類的物件和只能動態分配類的物件,兩種都要講。)
8、STL有哪些容器?對比下vector和set?
9、紅黑樹的定義和解釋?
10、const 關鍵字的作用?(const 成員函式、函式傳遞、和 define 的區別。)
11、靜態函式成員和靜態資料成員,有什麼意義?
12、模板特化的概念是什麼?為什麼要特化?
13、explicit 是幹什麼用的?
14、strcpy 函式的返回型別是幹嘛用的?
15、記憶體溢位有哪些因素導致的?
16、new 和malloc 的區別?delete 和free 的區別?
17、為什麼要用C++中的static_cast 轉換而不用C語言中的轉換?
18、異常機制是怎麼回事?
19、迭代器刪除元素的話,會發生什麼?
20、必須在類的建構函式初始化列表裡進行初始化的資料成員有哪些?
21、類的封裝:private、protected、public?
22、智慧指標 auto_ptr?
來源:牛客網
1、自我介紹+最滿意的專案+專案中的技術難點+專案還可以怎麼改進
2、C++中多型的實現
3、虛擬函式的實現機制,一個類一個虛擬函式表還是一個物件一個虛擬函式表,虛擬函式表指標是怎麼找到實現的哪個虛擬函式的?虛擬函式表存在哪裡?建構函式可以呼叫虛擬函式嗎?虛擬函式表指標是什麼時候載入的?
4、類的私有繼承是is還是has,公有繼承呢?
5、用過哪些STL?vector是怎樣實現記憶體動態增長的?擴容後原來的記憶體空間怎麼辦?擴容以後原來的資料可以用memcopy一個一個拷貝到新的記憶體空間嗎?
6、map中[]和find的區別?
7、智慧指標瞭解嗎?
8、C++11新特性瞭解哪些?
9、網路程式設計瞭解過嗎?你用的socket程式設計用的是那種模型?
10、TCP是怎樣保證可靠傳輸的?TCP粘包問題?TCP資料包錯誤怎麼檢測?(答校驗和)校驗和能保證資料完全正確嗎?不能的話,應該怎麼檢測資料包錯誤?
11、假設TCP連線已經建立完成,現階段並沒有資料傳輸,有一端突然斷網,另一端能知道嗎?
12、一個程式中建立多少執行緒比較合適?只跟CPU個數有關嗎?
13、怎麼保證多個執行緒使用同一個資源的安全性?執行緒鎖有哪些型別?
14、java多執行緒的sychonized關鍵字實現的是哪種鎖?
15、怎麼避免死鎖?
16、執行緒切換的原理
---------------------
作者:stormchenmeng
來源:CSDN
原文:https://blog.csdn.net/cmm0401/article/details/78033077
版權宣告:本文為博主原創文章,轉載請附上博文連結!