《C和C 程式設計師面試秘笈》中存在的錯誤

2021-08-18 15:52:53 字數 1775 閱讀 9455

最近在複習c++面試的考點,所以購買了《c和c++程式設計師面試秘笈》這本書(人民郵電出版社2014.3 isbn:978-7-115-34113-6)。

因為我只選擇性的看了第1、2、3、5、6、7章(全文共12章),所以本文只列出了這幾個章節中存在的錯誤。

頁碼面試題編號

存在的錯誤

p15面試題11

<>只會檢查預定義目錄,不是首先檢查預定義的目錄

p15面試題12

ctrl+c時,不會呼叫atexit註冊的函式,linux 的手冊中顯示只有normal termination才會呼叫atexit

p67面試題17

應該第14,15,16編譯錯誤,13行執行時錯誤

p71面試題21

第7行後,str[0]指向的是to後面的』\0』,而不是nanjing後面

p85面試題32

malloc與calloc不是一塊與n塊的區別,calloc分配的還是一塊,只是大小為n*size。本質上沒什麼區別,相當於malloc的大小為n*sizeof(type)

p150

面試題5

應該是將&&替換為&

p151

面試題7

執行時間型別資訊(rtti)翻譯錯誤,這裡應該為執行時型別資訊(rtti)

p152

面試題8

應該為編譯器將為你計算常數表示式的值,預處理器只進行文字替換,沒有計算。常數表示式的計算是在編譯階段進行的(生成彙編**時)

p155

面試題13

和p25面試題10重複了

p171

面試題10

第25行在函式體內呼叫父類建構函式是合法的,但是作用僅僅是建立乙個a物件,所以b的建構函式會自動呼叫父類a的無參建構函式,如果a沒有無參建構函式,才會編譯出錯。

p173

面試題12

c選項是錯誤的,靜態成員一樣受到private控制符的作用

p182

面試題20

應該為析構函式的執行順序與建構函式相反

p195

面試題28

拷貝建構函式的傳入引數必須為const b &b

p199

面試題30

拷貝建構函式的傳入引數必須為const

p204

面試題32

c++編譯器處理後包含了原函式名,函式引數型別。不是引數數量,也沒有返回型別資訊,返回值是沒有過載的

p205

面試題34

翻譯錯誤,應該為重寫(overriding) 過載(overloading)

p205

面試題34

只有虛函式能夠被覆寫(c++沒有抽象方法這麼一說,也沒有虛方法這麼一說,作者可能是想說抽象類的方法吧,抽象類的方法也屬於虛函式)

p228

面試題7

應該為 class child1 : public parent 與 class child2 : public parent

p229

面試題7

文字錯誤,應該為parent類的vtbl: parent::foo1()的位址,parent::foo2()的位址 (原文為foo1())

p235

面試題11

(1)(2)應該選d,因為都是乙個指標的大小,這個是和平台相關的,在64bit機器上,結果是8。

p242

面試題15

第(2)個應該為 任何虛擬基類的建構函式按照他們被繼承的順序構造。

p252

擴充套件知識:虛函式表

這裡感覺標題字型大小弄錯了,這個讓人感覺很像是面試題24的子專案。

C和C 程式設計師面試秘笈

本系列部落格基於董山海的zywang shu.edu.cn 第一章 c c 程式基礎 賦值語句 位運算與邏輯運算以及三元操作符的區別 c 域操作符,注意全域性變數和區域性變數的區別 i i i 先 i ii 自增 1 11,然後再列印 iii i i i 先列印 i ii,再 i ii 自增 111...

《C和C 程式設計師面試秘笈》第8章 資料結構

include include 1 單鏈表的 建立 鍊錶節點的定義 typedef struct node node typedef node ptrnode 建立單鏈表 輸入每個節點的資料,輸入0表示停止建立 node createsinglelist else tail next null li...

C和C 面試秘笈一 C和C 程式基礎

一 c 域操作符 首先看下面的這一段 include int value 0 void printvalue int main 如果我們直接編譯,編譯器會報錯,因為這是乙個c檔案,在c語言中還沒有域操作符 但是只要我們改變了標頭檔案。寫成c 檔案,然後編譯就可以正常輸出了。輸出的結果是 value ...