經(jīng)典常用C++面試題
1.介紹一下STL,詳細(xì)說明STL如何實現(xiàn)vector,
經(jīng)典常用C++面試題
。STL (標(biāo)準(zhǔn)模版庫,Standard Template Library)它由容器算法迭代器組成。
STL有以下的一些優(yōu)點:
可以方便容易地實現(xiàn)搜索數(shù)據(jù)或?qū)?shù)據(jù)排序等一系列的算法;
調(diào)試程序時更加安全和方便;
即使是人們用STL在UNIX平臺下寫的代碼你也可以很容易地理解(因為STL是跨平臺的)。
vector實質(zhì)上就是一個動態(tài)數(shù)組,會根據(jù)數(shù)據(jù)的增加,動態(tài)的增加數(shù)組空間。
2.如果用VC開發(fā)程序,常見這么幾個錯誤,C2001,c2005,c2011,這些錯誤的原因是什么。
在學(xué)習(xí)VC++的`過程中,遇到的LNK2001錯誤的錯誤消息主要為:
unresolved external symbol “symbol”(不確定的外部“符號”)。
如果連接程序不能在所有的庫和目標(biāo)文件內(nèi)找到所引用的函數(shù)、變量或標(biāo)簽,將產(chǎn)生此錯誤消息。
一般來說,發(fā)生錯誤的原因有兩個:一是所引用的函數(shù)、變量不存在、拼寫不正確或者使用錯誤;其次可能使用了不同版本的連接庫,
資料共享平臺
《經(jīng)典常用C++面試題》(http://m.oriental01.com)。編程中經(jīng)常能遇到LNK2005錯誤——重復(fù)定義錯誤,其實LNK2005錯誤并不是一個很難解決的錯誤.
3.繼承和委派有什么分別,在決定使用繼承或者委派的時候需要考慮什么。
在OOD,OOP中,組合優(yōu)于繼承.
當(dāng)然多態(tài)的基礎(chǔ)是繼承,沒有繼承多態(tài)無從談起。
當(dāng)對象的類型不影響類中函數(shù)的行為時,就要使用模板來生成這樣一組類。
當(dāng)對象的類型影響類中函數(shù)的行為時,就要使用繼承來得到這樣一組類.
4.指針和引用有什么分別;如果傳引用比傳指針安全,為什么?如果我使用常量指針難道不行嗎?
(1) 引用在創(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) 語言層面,引用的用法和對象一樣;在二進制層面,引用一般都是通過指針來實現(xiàn)的,只不過編譯器幫我們完成了轉(zhuǎn)換.
不存在空引用,并且引用一旦被初始化為指向一個對象,它就不能被改變?yōu)榱硪粋對象的引用,顯得很安全。
const 指針仍然存在空指針,并且有可能產(chǎn)生野指針.
【經(jīng)典常用C++面試題】相關(guān)文章:
1.C++面試題