最近在複習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 ...