經(jīng)典c++面試題_第1頁
已閱讀1頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、1.介紹一下STL,詳細(xì)說明STL如何實現(xiàn)vect。STL(標(biāo)準(zhǔn)模版庫,StardTemplateLibrary)它由容器算法迭代器組成。STL有以下的一些優(yōu)點:可以方便容易地實現(xiàn)搜索數(shù)據(jù)或?qū)?shù)據(jù)排序等一系列的算法;調(diào)試程序時更加安全和方便;即使是人們用STL在UNIX平臺下寫的代碼你也可以很容易地理解(因為STL是跨平臺的)。vect實質(zhì)上就是一個動態(tài)數(shù)組,會根據(jù)數(shù)據(jù)的增加動態(tài)的增加數(shù)組空間。2.如果用VC開發(fā)程序,常見這么幾個錯誤,

2、C2001c2005c2011這些錯誤的原因是什么。在學(xué)習(xí)VC的過程中,遇到的LNK2001錯誤的錯誤消息主要為:unresolvedexternalsymbol“symbol”(不確定的外部“符號”)。如果連接程序不能在所有的庫和目標(biāo)文件內(nèi)找到所引用的函數(shù)、變量或標(biāo)簽,將產(chǎn)生此錯誤消息。一般來說,發(fā)生錯誤的原因有兩個:一是所引用的函數(shù)、變量不存在、拼寫不正確或者使用錯誤;其次可能使用了不同版本的連接庫。編程中經(jīng)常能遇到LNK2005錯

3、誤——重復(fù)定義錯誤,其實LNK2005錯誤并不是一個很難解決的錯誤.3.繼承和委派有什么分別,在決定使用繼承或者委派的時候需要考慮什么。在OODOOP中,組合優(yōu)于繼承.當(dāng)然多態(tài)的基礎(chǔ)是繼承,沒有繼承多態(tài)無從談起。當(dāng)對象的類型不影響類中函數(shù)的行為時,就要使用模板來生成這樣一組類。當(dāng)對象的類型影響類中函數(shù)的行為時,就要使用繼承來得到這樣一組類.4.指針和引用有什么分別;如果傳引用比傳指針安全,為什么?如果我使用常量指針難道不行嗎?(1)引用

4、在創(chuàng)建的同時必須初始化,即引用到一個有效的對象;而指針在定義的時候不必初始化,可以在定義后面的任何地方重新賦值(2)不存在NULL引用,引用必須與合法的存儲單元關(guān)聯(lián)而指針則可以是NULL.(3)引用一旦被初始化為指向一個對象,它就不能被改變?yōu)榱硪粋€對象的引用;而指針在任何時候都可以改變?yōu)橹赶蛄硪粋€對象給引用賦值并不是改變它和原始對象的綁定關(guān)系(4)引用的創(chuàng)建和銷毀并不會調(diào)用類的拷貝構(gòu)造函數(shù)(5)語言層面,引用的用法和對象一樣;在二進(jìn)制層

5、面,引用一般都是通過指針來實現(xiàn)的,只不過編譯器幫我們完成了轉(zhuǎn)換.不存在空引用,并且引用一旦被初始化為指向一個對象,它就不能被改變?yōu)榱硪粋€對象的引用,顯得很安全。const指針仍然存在空指針,并且有可能產(chǎn)生野指針.總的來說:引用既具有指針的效率,又具有變量使用的方便性和直觀性5.參數(shù)傳遞有幾種方式;實現(xiàn)多態(tài)參數(shù)傳遞采用什么方式,如果沒有使用某種方式原因是什么;傳值,傳指針或者引用6.結(jié)合一個項目說明你怎樣應(yīng)用設(shè)計模式的理念。子類繼承父類大

6、部分的資源,不能繼承的有構(gòu)造函數(shù),析構(gòu)函數(shù),拷貝構(gòu)造函數(shù),operat=函數(shù),友元函數(shù)等等15.為什么要引入抽象基類和純虛函數(shù)?主要目的是為了實現(xiàn)一種接口的效果。16.介紹一下模板和容器。如何實現(xiàn)?(也許會讓你當(dāng)場舉例實現(xiàn))模板可以說比較古老了,但是當(dāng)前的泛型編程實質(zhì)上就是模板編程。它體現(xiàn)了一種通用和泛化的思想。STL有7種主要容器:vectlistdequemapmultimapsetmultiset.17.你如何理解MVC。簡單舉例

7、來說明其應(yīng)用。MVC模式是observer模式的一個特例典型的有MFC里面的文檔視圖架構(gòu)。18.多重繼承如何消除向上繼承的二義性。使用虛擬繼承即可.1.以下三條輸出語句分別輸出什么?[C易]str1[]=“abc”str2[]=“abc”conststr3[]=“abc”conststr4[]=“abc”conststr5=“abc”conststr6=“abc”coutboolalpha(str1==str2)endl輸出什么?cou

8、tboolalpha(str3==str4)endl輸出什么?coutboolalpha(str5==str6)endl輸出什么?2.非C內(nèi)建型別A和B,在哪幾種情況下B能隱式轉(zhuǎn)化為A?[C中等]答:a.classB:publicA……B公有繼承自A,可以是間接繼承的b.classBoperatA()B實現(xiàn)了隱式轉(zhuǎn)化為A的轉(zhuǎn)化c.classAA(constBA實現(xiàn)了nonexplicit的參數(shù)為B(可以有其他帶默認(rèn)值的參數(shù))構(gòu)造函數(shù)d.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論