<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          (純干貨)面試 | C++面試寶典

          共 2473字,需瀏覽 5分鐘

           ·

          2021-09-16 08:13

          點(diǎn)擊左上方藍(lán)字關(guān)注我們



          一個(gè)專注于目標(biāo)檢測(cè)與深度學(xué)習(xí)知識(shí)分享的公眾號(hào)

          編者薦語(yǔ)
          作者將自己在面試過程中被問的和自認(rèn)為重要的面試題整理出來(lái),希望對(duì)大家有所幫助。其中的一些問題,也在作者曾經(jīng)發(fā)過的文章中有詳細(xì)的介紹,同時(shí)附上相應(yīng)的鏈接,方便大家閱讀。

          # 干了這碗雞湯

          別為難自己,活得像你自己就行了


          -- 東野圭吾




          01

          C語(yǔ)言

          1. const的作用有哪些,談一談你對(duì)const的理解?

          2. 描述char*、const char*、char* const、const char* const的區(qū)別?

          3. 指針常量和常量指針有什么區(qū)別?

          4. static的作用是什么,什么情況下用到static?

          5. 全局變量與局部變量的區(qū)別?

          6. 宏定義的作用是什么?

          7. 內(nèi)存對(duì)齊的概念?為什么會(huì)有內(nèi)存對(duì)齊?

          8. inline 內(nèi)聯(lián)函數(shù)的特點(diǎn)有哪些?它的優(yōu)缺點(diǎn)是什么?

          9. 如何用C 實(shí)現(xiàn) C++ 的面向?qū)ο筇匦裕ǚ庋b、繼承、多態(tài))

          10. memcpy怎么實(shí)現(xiàn)讓它效率更高?

          11. typedef和define有什么區(qū)別?

          12. extern有什么作用,extern C有什么作用?

          13. 如何避免野指針?

          14. 如何計(jì)算結(jié)構(gòu)體長(zhǎng)度?

          15. sizeof和strlen有什么區(qū)別?

          16. 知道條件變量嗎?條件變量為什么要和鎖配合使用?




          02



          C++基礎(chǔ)

          1. C語(yǔ)言和C++有什么區(qū)別?
          2. struct和class有什么區(qū)別?
          3. extern "C"的作用?
          4. 函數(shù)重載和覆蓋有什么區(qū)別?
          5. 談一談你對(duì)多態(tài)的理解,運(yùn)行時(shí)多態(tài)的實(shí)現(xiàn)原理是什么?
          6. 對(duì)虛函數(shù)機(jī)制的理解,單繼承、多繼承、虛繼承條件下虛函數(shù)表的結(jié)構(gòu)
          7. 如果虛函數(shù)是有效的,那為什么不把所有函數(shù)設(shè)為虛函數(shù)?
          8. 構(gòu)造函數(shù)可以是虛函數(shù)嗎?析構(gòu)函數(shù)可以是虛函數(shù)嗎?
            面試系列之C++的對(duì)象布局【建議收藏】
          9. 什么場(chǎng)景需要用到純虛函數(shù)?純虛函數(shù)的作用是什么?
          10. 了解RAII嗎?介紹一下?
            RAII妙用之計(jì)算函數(shù)耗時(shí)
            RAII妙用之ScopeExit
          11. 類的大小怎么計(jì)算?
          12. volatile關(guān)鍵字的作用?什么時(shí)候需要使用volatile關(guān)鍵字
          13. 如何實(shí)現(xiàn)一個(gè)線程池?C++線程池的實(shí)現(xiàn)之格式修訂版
          14. 了解各種強(qiáng)制類型轉(zhuǎn)換的原理及使用?
          15. 指針和引用有什么區(qū)別?什么情況下用指針,什么情況下用引用?
          16. 一般什么情況下會(huì)出現(xiàn)內(nèi)存泄漏?怎么用C++在編碼層面盡量避免內(nèi)存泄漏。
          17. unique_ptr如何轉(zhuǎn)換所有權(quán)?
          18. 談一談你對(duì)面向?qū)ο蟮睦斫?/section>
          19. 什么場(chǎng)景下使用繼承方式,什么場(chǎng)景下使用組合?

          20. 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新特性你都了解多少?


          22. STL
          • 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ù)



          03

          設(shè)計(jì)模式

          如果你能知道所有的設(shè)計(jì)模式最好,即便不知道所有的設(shè)計(jì)模式,下面這些高頻設(shè)計(jì)模式你還是需要了解的。
          1. 分別寫出餓漢和懶漢線程安全的單例模式
          2. 說(shuō)出觀察者模式類關(guān)系和優(yōu)點(diǎn)
          3. 說(shuō)出代理模式類關(guān)系和優(yōu)點(diǎn)
          4. 說(shuō)出工廠模式概念和優(yōu)點(diǎn)
          5. 說(shuō)出構(gòu)造者模式概念
          6. 說(shuō)出適配器模式概念



          04

          操作系統(tǒng)

          1. 進(jìn)程和線程的區(qū)別?深度好文|面試官:進(jìn)程和線程,我只問這19個(gè)問題
          2. 操作系統(tǒng)是怎么進(jìn)行進(jìn)程管理的?
          3. 操作系統(tǒng)是如何做到進(jìn)程阻塞的?
          4. 進(jìn)程之間的通信方式有哪些?
          5. 什么是上下文切換,操作系統(tǒng)是怎么做的上下文切換?
          6. 線程是如何實(shí)現(xiàn)的?
          7. 線程之間私有和共享的資源有哪些?
          8. 一般應(yīng)用程序內(nèi)存空間的堆和棧的區(qū)別是什么?
          9. 進(jìn)程虛擬空間是怎么布局的?10張圖22段代碼,萬(wàn)字長(zhǎng)文帶你搞懂虛擬內(nèi)存模型和malloc內(nèi)部原理
          10. 虛擬內(nèi)存是如何映射到物理內(nèi)存的?了解分頁(yè)內(nèi)存管理嗎?操作系統(tǒng)內(nèi)存管理,你能回答這8個(gè)問題嗎?
          11. 產(chǎn)生死鎖的必要條件有哪些?如何避免死鎖?
          12. 什么是大端字節(jié),什么是小端字節(jié)?如何轉(zhuǎn)換字節(jié)序?
          13. 信號(hào)和信號(hào)量的區(qū)別是什么?
          14. 鎖的性能開銷,鎖的實(shí)現(xiàn)原理?
          15. 了解CPU的Cache嗎?如何寫一個(gè)高效的多維矩陣乘法?如何利用CPU Cache寫出高性能代碼,看這些圖就夠了!



          05

          編譯原理

          1. gcc hello.c 這行命令具體的執(zhí)行過程,內(nèi)部究竟做了什么?gcc a.c 究竟經(jīng)歷了什么?
          2. 程序一定會(huì)從main函數(shù)開始運(yùn)行嗎?
          3. 如何確定某個(gè)函數(shù)有被編譯輸出?
          4. 動(dòng)態(tài)鏈接庫(kù)和靜態(tài)鏈接庫(kù)的區(qū)別是什么?Linux 為什么要?jiǎng)討B(tài)鏈接?與靜態(tài)鏈接的區(qū)別是什么?


          END



          雙一流大學(xué)研究生團(tuán)隊(duì)創(chuàng)建,專注于目標(biāo)檢測(cè)與深度學(xué)習(xí),希望可以將分享變成一種習(xí)慣!

          整理不易,點(diǎn)贊支持一下吧↓

          瀏覽 101
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩一级色 | 97五月婷婷 | 91成人免费在线视频 | 日本在线视频一区二区 | 国产精品尤物 |