- 相關(guān)推薦
IT公司筆試面試題系列
C++筆試題
1.多態(tài)類中的虛函數(shù)表是Compile-Time,還是Run-Time時(shí)建立的?
答案:虛擬函數(shù)表是在編譯期就建立了,各個(gè)虛擬函數(shù)這時(shí)被組織成了一個(gè)虛擬函數(shù)的入口地址的數(shù)組.而對(duì)象的隱藏成員--虛擬函數(shù)表指針是在運(yùn)行期--也就是構(gòu)造函數(shù)被調(diào)用時(shí)進(jìn)行初始化的,這是實(shí)現(xiàn)多態(tài)的關(guān)鍵.
2.一個(gè)父類寫了一個(gè)virtual 函數(shù),如果子類覆蓋它的函數(shù)不加virtual ,也能實(shí)現(xiàn)多態(tài)?
在子類的空間里,有沒有父類的這個(gè)函數(shù),或者父類的私有變量? (華為筆試題)
答案:只要基類在定義成員函數(shù)時(shí)已經(jīng)聲明了virtue關(guān)鍵字,在派生類實(shí)現(xiàn)的時(shí)候覆蓋該函數(shù)時(shí),virtue關(guān)鍵字可加可不加,不影響多態(tài)的實(shí)現(xiàn)。子類的空間里有父類的所有變量(static除外)。
3.完成字符串拷貝可以使用 sprintf、strcpy 及 memcpy 函數(shù),請(qǐng)問這些函數(shù)有什么區(qū)別,你喜歡使用哪個(gè),為什么?
答案:這些函數(shù)的區(qū)別在于實(shí)現(xiàn)功能以及操作對(duì)象不同。
1.strcpy 函數(shù)操作的對(duì)象是字符串,完成從源字符串到目的字符串的拷貝功能。
2.snprintf 函數(shù)操作的對(duì)象不限于字符串:雖然目的對(duì)象是字符串,但是源對(duì)象可以是字符串、也可以是任意基本類型的數(shù)據(jù)。這個(gè)函數(shù)主要用來實(shí)現(xiàn)(字符串或基本數(shù)據(jù)類型)向字符串的轉(zhuǎn)換功能。如果源對(duì)象是字符串,并且指定 %s 格式符,也可實(shí)現(xiàn)字符串拷貝功能。
3.memcpy 函數(shù)顧名思義就是內(nèi)存拷貝,實(shí)現(xiàn)將一個(gè)內(nèi)存塊的內(nèi)容復(fù)制到另一個(gè)內(nèi)存塊這一功能。內(nèi)存塊由其首地址以及長(zhǎng)度確定。程序中出現(xiàn)的實(shí)體對(duì)象,不論是什么類型,其最終表現(xiàn)就是在內(nèi)存中占據(jù)一席之地(一個(gè)內(nèi)存區(qū)間或塊)。因此,memcpy 的操作對(duì)象不局限于某一類數(shù)據(jù)類型,或者說可適用于任意數(shù)據(jù)類型,只要能給出對(duì)象的起始地址和內(nèi)存長(zhǎng)度信息、并且對(duì)象具有可操作性即可。鑒于 memcpy 函數(shù)等長(zhǎng)拷貝的特點(diǎn)以及數(shù)據(jù)類型代表的物理意義,memcpy 函數(shù)通常限于同種類型數(shù)據(jù)或?qū)ο笾g的拷貝,其中當(dāng)然也包括字符串拷貝以及基本數(shù)據(jù)類型的拷貝。
對(duì)于字符串拷貝來說,用上述三個(gè)函數(shù)都可以實(shí)現(xiàn),但是其實(shí)現(xiàn)的效率和使用的方便程度不同:
1.strcpy 無疑是最合適的選擇:效率高且調(diào)用方便。
2.snprintf 要額外指定格式符并且進(jìn)行格式轉(zhuǎn)化,麻煩且效率不高。
3.memcpy 雖然高效,但是需要額外提供拷貝的內(nèi)存長(zhǎng)度這一參數(shù),易錯(cuò)且使用不便;并且如果長(zhǎng)度指定過大的話(最優(yōu)長(zhǎng)度是源字符串長(zhǎng)度 + 1),還會(huì)帶來性能的下降。其實(shí) strcpy 函數(shù)一般是在內(nèi)部調(diào)用 memcpy 函數(shù)或者用匯編直接實(shí)現(xiàn)的,以達(dá)到高效的目的。因此,使用 memcpy 和 strcpy 拷貝字符串在性能上應(yīng)該沒有什么大的差別。
[IT公司筆試面試題系列]
【IT公司筆試面試題系列】相關(guān)文章:
硬件巨頭Intel筆試面試題目10-03
常見的硬件筆試面試題目參考07-03
硬件巨頭Intel筆試面試題目08-16
公司面試題09-12
Google產(chǎn)品經(jīng)理筆試題&面試題10-26
應(yīng)聘微軟全程指導(dǎo)(筆試,面試,面試題)10-28
微軟10道筆試面試題目(2)06-30
常見面試題六之java系列(2)08-16
寶潔公司的筆試08-15
各大it公司面試題05-25