下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、(1).頭文件中的 ifndef/define/endif 干什么用?預(yù)處理(2). i nclude 和 i nclude “filename.h”區(qū)別?3.sic C、C+中的用法在 C 中 sic 用來(lái)修飾局部靜態(tài)變量和外部靜態(tài)變量、函數(shù)。而 C+中除了上述功能外,還用來(lái)定義類的成員變量和函數(shù)。即靜態(tài)成員和靜態(tài)成員函數(shù)。注意:編程時(shí) sic 的性,和全局性的特點(diǎn)可以讓在不同時(shí)期調(diào)用的函數(shù)進(jìn)行通信,傳遞信息,而 C+的靜態(tài)成員則可以在多個(gè)對(duì)象實(shí)例間進(jìn)行通信,傳遞信息。1. C 中 sic作用(1)隱藏。 當(dāng) 同時(shí)編譯多個(gè)文件時(shí),所有未加 s ic 前綴的全局變量和函數(shù)都具有全局可見(jiàn)性,故使
2、用 s ic 在不同的文件中定義同名函數(shù)和同名變量,而不必?fù)?dān)心命名 。(2)s ic 的第二個(gè)作用是保持變量?jī)?nèi)容的持久。 在靜態(tài)數(shù)據(jù)區(qū)的變量會(huì)在程序剛開(kāi)始運(yùn)行時(shí)就完成初始化,也是唯一的一次初始化。共有兩種變量在靜態(tài)區(qū):全局變量和 sic 變量。(3)sic 的第三個(gè)作用是默認(rèn)初始化為 0.其實(shí)全局變量也具備這一屬性,因?yàn)槿肿兞恳苍陟o態(tài)數(shù)據(jù)區(qū)。在靜態(tài)數(shù)據(jù)區(qū),內(nèi)存中所有的字節(jié)默認(rèn)值都是 000,某些時(shí)候這一特點(diǎn)可以減少程序員的工作量。C+中 const用?不要一聽(tīng)到 const 就說(shuō)是常量,這樣給考官一種在和一個(gè)外行交談的感覺(jué)。應(yīng)該說(shuō) const 修飾的內(nèi)容不可改變就行了, 定義常量只是一種使用
3、方式而已,還有 const 數(shù)據(jù)成員,const 參數(shù), const 返回值, const 成員函數(shù)等, 被 const修飾的東西都受到強(qiáng)制保護(hù),可以預(yù)防意外的變動(dòng),能提高程序的健壯性。C 與 C+各自是如何定義常量的?不同?C 中是使用宏#define 定義, C+使用更好的 const 來(lái)定義。區(qū)別:1)const 是有數(shù)據(jù)類型的常量,而宏常量沒(méi)有,編譯器可以對(duì)前者進(jìn)行靜態(tài)類型安全檢查,對(duì)后者僅是字符替換,沒(méi)有類型安全檢查,而且在字符替換時(shí)可能會(huì)產(chǎn)生意料不到的錯(cuò)誤(邊際效應(yīng))。2)有些編譯器可以對(duì) const 常量進(jìn)行調(diào)試, 不能對(duì)宏調(diào)試。4. 既然 C+中有更好的 const 為什么還要
4、使用宏?const 無(wú)法代替宏作為衛(wèi)哨來(lái)防止文件的重復(fù)包含。5. C+中和指針的區(qū)別?是對(duì)象的別名, 操作就是操作這個(gè)對(duì)象, 必須在創(chuàng)建的同時(shí)有效得初始化(一個(gè)有效的對(duì)象, 不可為 NULL), 初始化完畢就再也不可改變,上具有指針的效率, 又具有變量使用的方便性和直觀性, 在語(yǔ)言層面和對(duì)象的用法一樣, 在二進(jìn)制層面上一般都是通過(guò)指針來(lái)實(shí)現(xiàn)的,是為了用適當(dāng)?shù)墓ぞ咦銮∪缙渲皇蔷幾g器幫完成了轉(zhuǎn)換。 之所以使用分的事, 體現(xiàn)了最小原則。6. 說(shuō)一說(shuō) C 與 C+的內(nèi)存分配方式?1)從靜態(tài)區(qū)域分配。內(nèi)存在程序編譯的時(shí)候就已經(jīng)分配好,這塊內(nèi)存在程序的整個(gè)運(yùn)行期間都存在,如全局變量,sic 變量。2)在棧
5、上創(chuàng)建。在執(zhí)行函數(shù)時(shí),函數(shù)內(nèi)局部變量的單元都可以在棧上創(chuàng)建,函數(shù)執(zhí)行結(jié)束時(shí)這些單元自動(dòng)被。棧內(nèi)存分配運(yùn)算內(nèi)置于處理器的指令集中,效率很高,但是分配的內(nèi)存容量有限。3)從堆上分配(動(dòng)態(tài)內(nèi)存分配)程序在運(yùn)行的時(shí)候用 malloc 或 new 申請(qǐng)任意多少的內(nèi)存,程序員負(fù)責(zé)在何時(shí)用 free 或 delete存期自己決定,使用非常靈活。內(nèi)存。動(dòng)態(tài)內(nèi)存的生7. new/delete 與 malloc()/free() 的區(qū)別?malloc() 與 free() 是 C 語(yǔ)言的標(biāo)準(zhǔn)庫(kù)函數(shù), new/delete 是 C+的運(yùn)算符, 他們都可以用來(lái)申請(qǐng)和內(nèi)存, malloc()和 free()不在編譯器控
6、制權(quán)限之內(nèi), 不能把構(gòu)造函數(shù)和析構(gòu)函數(shù)的任務(wù)強(qiáng)加給他們。 8. #include和#includea.h區(qū)別?答:對(duì)于#include ,編譯器從標(biāo)準(zhǔn)庫(kù)路徑開(kāi)始搜索 a.h 對(duì)于#includea.h ,編譯器從用戶的工作路徑開(kāi)始搜索 a.h9. 在 C+ 程序中調(diào)用被 C 編譯器編譯后的函數(shù),為什么要加 extern C?C+語(yǔ)言支持函數(shù)重載,C 語(yǔ)言不支持函數(shù)重載。函數(shù)被 C+編譯后在庫(kù)中的名字與 C 語(yǔ)言的不同。假設(shè)某個(gè)函數(shù)的原型為: void foo(x,y);該函數(shù)被 C 編譯器編譯后在庫(kù)中的名字為_(kāi)foo, 而 C+ 編譯器則會(huì)產(chǎn)生像_foo_之類的名字。C+提供了 C 連接交換指
7、定符號(hào) externC來(lái)解決名字匹配問(wèn)題。10. C+中的多態(tài)性? 是如何實(shí)現(xiàn)的?多態(tài)性是面象程序設(shè)計(jì)語(yǔ)言繼數(shù)據(jù)抽象和繼承之后的第三個(gè)基本特征。它是在運(yùn)行時(shí)出現(xiàn)的多態(tài)性通過(guò)派生類和虛函數(shù)實(shí)現(xiàn)?;惡团缮愔惺褂猛瑯拥暮瘮?shù)名, 完成不同的操作具體實(shí)現(xiàn)相的另一類接口,即把 w h a t從h ow分離開(kāi)來(lái)。多態(tài)性提高了代碼的組織性和可讀性,虛函數(shù)則根據(jù)類型的不同來(lái)進(jìn)行不同的。11.動(dòng)態(tài)特性?在絕大多數(shù)情況下, 程序的功能是在編譯的時(shí)候就確定下來(lái)的,稱之為靜態(tài)特性。 反之, 如果程序的功能是在運(yùn)行時(shí)刻才能確定下來(lái)的, 則稱之為動(dòng)態(tài)特性。C+中, 虛函數(shù),抽象基類, 動(dòng)態(tài)綁定和多態(tài)特性。了出色的動(dòng)態(tài)1
8、2.封裝?C+中是如何實(shí)現(xiàn)的?封裝來(lái)源于信息隱藏的設(shè)計(jì)理念, 是通過(guò)特性和行為的組合來(lái)創(chuàng)建新數(shù)據(jù)類型讓接口與具體實(shí)現(xiàn)相。C+中是通過(guò)類來(lái)實(shí)現(xiàn)的, 為了盡量避免某個(gè)面試題 1:變量的為變量分配地址和和定義區(qū)別空間的稱為定義,不分配地址的稱為。一個(gè)變量可以在多個(gè)地方,說(shuō)明此變量將在文件以,但是只在一個(gè)地方定義。加入 extern 修飾的是變量的外或在文件后面部分定義。說(shuō)明:很多時(shí)候一個(gè)變量,只是空間,如外部變量。不分配內(nèi)存空間,直到具體使用時(shí)才初始化,分配內(nèi)存鏈表和數(shù)組區(qū)別數(shù)組和鏈表有以下幾點(diǎn)不同:(1)形式:數(shù)組是一塊連續(xù)的空間,時(shí)就要確定長(zhǎng)度。鏈表是一塊可不連續(xù)的動(dòng)態(tài)空間,長(zhǎng)度可變,每個(gè)結(jié)點(diǎn)要
9、保存相鄰結(jié)點(diǎn)指針。模塊的行為干擾同一系統(tǒng)中的其它模塊,應(yīng)該讓模塊僅僅公開(kāi)必須讓外界知道的接口。RTTI?RTTI 事指運(yùn)行時(shí)類型識(shí)別(Run-time type identification)在只有一個(gè)指向基類的指針或 時(shí)確定一個(gè)對(duì)象的準(zhǔn)確類型??截悩?gòu)造函數(shù)?它是單個(gè)參數(shù)的構(gòu)造函數(shù),其參數(shù)是與它同屬一類的對(duì)象的(常) ;類定義中,如果未提供自己的拷貝構(gòu)造函數(shù),C+提供一個(gè)默認(rèn)拷貝構(gòu)造函數(shù),該默認(rèn)拷貝構(gòu)造函數(shù)完成一個(gè)成員到一個(gè)成員的拷貝深淺拷貝?淺拷貝是創(chuàng)建了一個(gè)對(duì)象用一個(gè)現(xiàn)成的對(duì)象初始化它的時(shí)候只是 了成員(簡(jiǎn)單賦值)而沒(méi)有拷貝分配給成員的資源(如給其指針變量成員分配了動(dòng)態(tài)內(nèi)存); 深拷貝是當(dāng)
10、一個(gè)對(duì)象創(chuàng)建時(shí),如果分配了資源,就需要定義自己的拷貝構(gòu)造函數(shù),使之不但拷貝成員也拷貝分配給它的資源。面象程序設(shè)計(jì)的優(yōu)點(diǎn)?開(kāi)發(fā)時(shí)間短, 效率高, 可靠性高。面 象編程的編碼具有 重用性,可以在應(yīng)用程序中大量采用成 類庫(kù)(如 STL),從而雖短了開(kāi)發(fā)時(shí)間,易于和升級(jí)。(2)數(shù)據(jù)查找:數(shù)組的線性查找速度快,查找操作直接使用偏移地址。鏈表需要按順序檢索結(jié)點(diǎn),效率低。(3)數(shù)據(jù)或刪除:鏈表可以快速和刪除結(jié)點(diǎn),而數(shù)組則可能需要大量數(shù)據(jù)移動(dòng)。(4)越界問(wèn)題:鏈表不存在越界問(wèn)題,數(shù)組有越界問(wèn)題。說(shuō)明:在選擇數(shù)組或鏈表數(shù)據(jù)結(jié)構(gòu)時(shí),一定要根據(jù)實(shí)際需要進(jìn)行選擇。數(shù)組便于查詢,鏈表便于刪除。數(shù)組節(jié)省空間但是長(zhǎng)度固定,
11、鏈表雖然變長(zhǎng)但是占了的空間。面試題 17:簡(jiǎn)述類成員函數(shù)的重寫(xiě)、重載和隱藏的區(qū)別重寫(xiě)和重載主要有以下幾點(diǎn)不同。范圍的區(qū)別:被重寫(xiě)的和重寫(xiě)的函數(shù)在兩個(gè)類中,而重載和被重載的函數(shù)在同一個(gè)類中。參數(shù)的區(qū)別:被重寫(xiě)函數(shù)和重寫(xiě)函數(shù)的參數(shù)列表一定相同,而被重載函數(shù)和重載函數(shù)的參數(shù)列表一定不同。virtual 的區(qū)別:重寫(xiě)的基類中被重寫(xiě)的函數(shù)必須要有 virtual 修飾,而重載函數(shù)和被重載函數(shù)可以被7virtual 修飾,也可以沒(méi)有。隱藏和重寫(xiě)、重載有以下幾點(diǎn)不同。與重載的范圍不同:和重寫(xiě)一樣,隱藏函數(shù)和被隱藏函數(shù)不在同一個(gè)類中。參數(shù)的區(qū)別:隱藏函數(shù)和被隱藏的函數(shù)的參數(shù)列表可以相同,也可不同,但是函數(shù)名肯
12、定要相同。當(dāng)參數(shù)不相同時(shí),無(wú)論基類中的參數(shù)是否被 virtual 修飾,基類的函數(shù)都是被隱藏,而不是被重寫(xiě)。說(shuō)明:雖然重載和覆蓋都是實(shí)現(xiàn)多態(tài)的基礎(chǔ),但是兩者實(shí)現(xiàn)的技術(shù)完全不相同,達(dá)到的目的也是完全不同的,覆蓋是動(dòng)態(tài)態(tài)綁定的多態(tài),而重載是靜態(tài)綁定的多態(tài)面試題 18:簡(jiǎn)述多態(tài)實(shí)現(xiàn)的原理編譯器發(fā)現(xiàn)一個(gè)類中有虛函數(shù),便會(huì)立即為此類生成虛函數(shù)表 vtable。虛函數(shù)表的各表項(xiàng)為指應(yīng)虛函數(shù)的指針。編譯器還會(huì)在此類中隱含一個(gè)指針 vptr(對(duì) vc 編譯器來(lái)說(shuō),它插在類的第一個(gè)位置上)指向虛函數(shù)表。調(diào)用此類的構(gòu)造函數(shù)時(shí),在類的構(gòu)造函數(shù)中,編譯器會(huì)隱含執(zhí)行 vptr 與 vtable 的關(guān)聯(lián)代碼,將 vptr 指應(yīng)的 vtable
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025下半年四川省廣元市利州區(qū)人力資源和社會(huì)保障局考試招聘21人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025上半年貴州黔南州事業(yè)單位面向應(yīng)征入伍大學(xué)畢業(yè)生招聘72人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025上半年江蘇蘇州昆山市千燈鎮(zhèn)招聘工作人員38人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025上半年江蘇建湖縣事業(yè)單位招聘擬聘歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025上半年四川省眉山市廣播電視臺(tái)考試招聘10人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025上半年四川瀘州市納溪區(qū)事業(yè)單位招聘工作人員63人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025上半年四川樂(lè)山馬邊縣事業(yè)單位招聘工作人員111人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 工業(yè)園區(qū)土地復(fù)墾承諾書(shū)
- 通訊網(wǎng)絡(luò)建設(shè)合同審核流程
- 2024年短期借款協(xié)議模板詳細(xì)版版
- 2025人教版九年級(jí)英語(yǔ)全冊(cè)知識(shí)點(diǎn)清單
- 醫(yī)院緊急情況一鍵報(bào)警制度建設(shè)
- 2024版 新能源電站單位千瓦造價(jià)標(biāo)準(zhǔn)
- 企業(yè)培訓(xùn)師競(jìng)聘
- 惠州學(xué)院《電機(jī)與拖動(dòng)基礎(chǔ)》2023-2024學(xué)年期末試卷
- 吊車裝吊籃施工方案
- 山東省濟(jì)南市濟(jì)鋼高級(jí)中學(xué)2025屆物理高一上期末檢測(cè)試題含解析
- 07FG01防空地下室設(shè)計(jì)荷載及結(jié)構(gòu)構(gòu)造
- 湖南省益陽(yáng)市2023-2024學(xué)年高二上學(xué)期普通高中期末質(zhì)量檢測(cè)數(shù)學(xué)試題 含解析
- 2024年保安員證考試題庫(kù)及答案(共250題)
- 天津市七區(qū)2022-2023學(xué)年高一上學(xué)期期末數(shù)學(xué)試卷(原卷)
評(píng)論
0/150
提交評(píng)論