(純干貨)面試 | C++面試寶典
點擊左上方藍字關(guān)注我們

# 干了這碗雞湯
別為難自己,活得像你自己就行了
-- 東野圭吾
const的作用有哪些,談一談你對const的理解?
描述char*、const char*、char* const、const char* const的區(qū)別?
指針常量和常量指針有什么區(qū)別?
static的作用是什么,什么情況下用到static?
全局變量與局部變量的區(qū)別?
宏定義的作用是什么?
內(nèi)存對齊的概念?為什么會有內(nèi)存對齊?
inline 內(nèi)聯(lián)函數(shù)的特點有哪些?它的優(yōu)缺點是什么?
如何用C 實現(xiàn) C++ 的面向?qū)ο筇匦裕ǚ庋b、繼承、多態(tài))
memcpy怎么實現(xiàn)讓它效率更高?
typedef和define有什么區(qū)別?
extern有什么作用,extern C有什么作用?
如何避免野指針?
如何計算結(jié)構(gòu)體長度?
sizeof和strlen有什么區(qū)別?
知道條件變量嗎?條件變量為什么要和鎖配合使用?
C語言和C++有什么區(qū)別? struct和class有什么區(qū)別? extern "C"的作用? 函數(shù)重載和覆蓋有什么區(qū)別? 談一談你對多態(tài)的理解,運行時多態(tài)的實現(xiàn)原理是什么? 對虛函數(shù)機制的理解,單繼承、多繼承、虛繼承條件下虛函數(shù)表的結(jié)構(gòu) 如果虛函數(shù)是有效的,那為什么不把所有函數(shù)設(shè)為虛函數(shù)? 構(gòu)造函數(shù)可以是虛函數(shù)嗎?析構(gòu)函數(shù)可以是虛函數(shù)嗎? 面試系列之C++的對象布局【建議收藏】 什么場景需要用到純虛函數(shù)?純虛函數(shù)的作用是什么? 了解RAII嗎?介紹一下? RAII妙用之計算函數(shù)耗時 RAII妙用之ScopeExit 類的大小怎么計算? volatile關(guān)鍵字的作用?什么時候需要使用volatile關(guān)鍵字 如何實現(xiàn)一個線程池?C++線程池的實現(xiàn)之格式修訂版 了解各種強制類型轉(zhuǎn)換的原理及使用? 指針和引用有什么區(qū)別?什么情況下用指針,什么情況下用引用? 一般什么情況下會出現(xiàn)內(nèi)存泄漏?怎么用C++在編碼層面盡量避免內(nèi)存泄漏。 unique_ptr如何轉(zhuǎn)換所有權(quán)? 談一談你對面向?qū)ο蟮睦斫?/section> 什么場景下使用繼承方式,什么場景下使用組合? new和malloc有什么區(qū)別?
malloc的內(nèi)存可以用delete釋放嗎?
malloc出來20字節(jié)內(nèi)存,為什么free不需要傳入20呢,不會產(chǎn)生內(nèi)存泄漏嗎?
new[]和delete[]一定要配對使用嗎?new[]和delete[]為何要配對使用?
21. C++11新特性你都了解多少?
了解auto和decltype嗎?一文吃透C++11中auto和decltype知識點
談一談你對左值和右值的了解,了解左值引用和右值引用嗎?
了解移動語義和完美轉(zhuǎn)發(fā)嗎?左值引用、右值引用、移動語義、完美轉(zhuǎn)發(fā),你知道的不知道的都在這里
了解列表初始化嗎?學(xué)會C++11列表初始化
平時會用到function、bind、lambda嗎,都什么場景下會用到?搞定c++11新特性std::function和lambda表達式
對C++11的mutex和RAII lock有過了解嗎?c++11新特性之線程相關(guān)所有知識點
對C++11的智能指針了解多少,可以自己實現(xiàn)一個智能指針嗎?c++11新特性之智能指針 源碼分析shared_ptr實現(xiàn)之修訂版
enum 和 enum class有什么區(qū)別?
C++直接使用數(shù)組好還是使用std::array好?std::array是怎么實現(xiàn)的?
std::vector最大的特點是什么?它的內(nèi)部是怎么實現(xiàn)的?resize和reserve的區(qū)別是什么?clear是怎么實現(xiàn)的?
deque的底層數(shù)據(jù)結(jié)構(gòu)是什么?它的內(nèi)部是怎么實現(xiàn)的?
map和unordered_map有什么區(qū)別?分別在什么場景下使用?
list的使用場景?std::find可以傳入list對應(yīng)的迭代器嗎?
string的常用函數(shù)
分別寫出餓漢和懶漢線程安全的單例模式 說出觀察者模式類關(guān)系和優(yōu)點 說出代理模式類關(guān)系和優(yōu)點 說出工廠模式概念和優(yōu)點 說出構(gòu)造者模式概念 說出適配器模式概念
進程和線程的區(qū)別?深度好文|面試官:進程和線程,我只問這19個問題 操作系統(tǒng)是怎么進行進程管理的? 操作系統(tǒng)是如何做到進程阻塞的? 進程之間的通信方式有哪些? 什么是上下文切換,操作系統(tǒng)是怎么做的上下文切換? 線程是如何實現(xiàn)的? 線程之間私有和共享的資源有哪些? 一般應(yīng)用程序內(nèi)存空間的堆和棧的區(qū)別是什么? 進程虛擬空間是怎么布局的?10張圖22段代碼,萬字長文帶你搞懂虛擬內(nèi)存模型和malloc內(nèi)部原理 虛擬內(nèi)存是如何映射到物理內(nèi)存的?了解分頁內(nèi)存管理嗎?操作系統(tǒng)內(nèi)存管理,你能回答這8個問題嗎? 產(chǎn)生死鎖的必要條件有哪些?如何避免死鎖? 什么是大端字節(jié),什么是小端字節(jié)?如何轉(zhuǎn)換字節(jié)序? 信號和信號量的區(qū)別是什么? 鎖的性能開銷,鎖的實現(xiàn)原理? 了解CPU的Cache嗎?如何寫一個高效的多維矩陣乘法?如何利用CPU Cache寫出高性能代碼,看這些圖就夠了!
gcc hello.c 這行命令具體的執(zhí)行過程,內(nèi)部究竟做了什么?gcc a.c 究竟經(jīng)歷了什么? 程序一定會從main函數(shù)開始運行嗎? 如何確定某個函數(shù)有被編譯輸出? 動態(tài)鏈接庫和靜態(tài)鏈接庫的區(qū)別是什么?Linux 為什么要動態(tài)鏈接?與靜態(tài)鏈接的區(qū)別是什么?
END
整理不易,點贊支持一下吧↓
