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

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