下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、(1).頭文件中的 ifndef/define/endif 干什么用?預(yù)處理(2). i nclude 和 i nclude “filename.h”區(qū)別?3.sic C、C+中的用法在 C 中 sic 用來修飾局部靜態(tài)變量和外部靜態(tài)變量、函數(shù)。而 C+中除了上述功能外,還用來定義類的成員變量和函數(shù)。即靜態(tài)成員和靜態(tài)成員函數(shù)。注意:編程時 sic 的性,和全局性的特點可以讓在不同時期調(diào)用的函數(shù)進行通信,傳遞信息,而 C+的靜態(tài)成員則可以在多個對象實例間進行通信,傳遞信息。1. C 中 sic作用(1)隱藏。 當(dāng) 同時編譯多個文件時,所有未加 s ic 前綴的全局變量和函數(shù)都具有全局可見性,故使
2、用 s ic 在不同的文件中定義同名函數(shù)和同名變量,而不必?fù)?dān)心命名 。(2)s ic 的第二個作用是保持變量內(nèi)容的持久。 在靜態(tài)數(shù)據(jù)區(qū)的變量會在程序剛開始運行時就完成初始化,也是唯一的一次初始化。共有兩種變量在靜態(tài)區(qū):全局變量和 sic 變量。(3)sic 的第三個作用是默認(rèn)初始化為 0.其實全局變量也具備這一屬性,因為全局變量也在靜態(tài)數(shù)據(jù)區(qū)。在靜態(tài)數(shù)據(jù)區(qū),內(nèi)存中所有的字節(jié)默認(rèn)值都是 000,某些時候這一特點可以減少程序員的工作量。C+中 const用?不要一聽到 const 就說是常量,這樣給考官一種在和一個外行交談的感覺。應(yīng)該說 const 修飾的內(nèi)容不可改變就行了, 定義常量只是一種使用
3、方式而已,還有 const 數(shù)據(jù)成員,const 參數(shù), const 返回值, const 成員函數(shù)等, 被 const修飾的東西都受到強制保護,可以預(yù)防意外的變動,能提高程序的健壯性。C 與 C+各自是如何定義常量的?不同?C 中是使用宏#define 定義, C+使用更好的 const 來定義。區(qū)別:1)const 是有數(shù)據(jù)類型的常量,而宏常量沒有,編譯器可以對前者進行靜態(tài)類型安全檢查,對后者僅是字符替換,沒有類型安全檢查,而且在字符替換時可能會產(chǎn)生意料不到的錯誤(邊際效應(yīng))。2)有些編譯器可以對 const 常量進行調(diào)試, 不能對宏調(diào)試。4. 既然 C+中有更好的 const 為什么還要
4、使用宏?const 無法代替宏作為衛(wèi)哨來防止文件的重復(fù)包含。5. C+中和指針的區(qū)別?是對象的別名, 操作就是操作這個對象, 必須在創(chuàng)建的同時有效得初始化(一個有效的對象, 不可為 NULL), 初始化完畢就再也不可改變,上具有指針的效率, 又具有變量使用的方便性和直觀性, 在語言層面和對象的用法一樣, 在二進制層面上一般都是通過指針來實現(xiàn)的,是為了用適當(dāng)?shù)墓ぞ咦銮∪缙渲皇蔷幾g器幫完成了轉(zhuǎn)換。 之所以使用分的事, 體現(xiàn)了最小原則。6. 說一說 C 與 C+的內(nèi)存分配方式?1)從靜態(tài)區(qū)域分配。內(nèi)存在程序編譯的時候就已經(jīng)分配好,這塊內(nèi)存在程序的整個運行期間都存在,如全局變量,sic 變量。2)在棧
5、上創(chuàng)建。在執(zhí)行函數(shù)時,函數(shù)內(nèi)局部變量的單元都可以在棧上創(chuàng)建,函數(shù)執(zhí)行結(jié)束時這些單元自動被。棧內(nèi)存分配運算內(nèi)置于處理器的指令集中,效率很高,但是分配的內(nèi)存容量有限。3)從堆上分配(動態(tài)內(nèi)存分配)程序在運行的時候用 malloc 或 new 申請任意多少的內(nèi)存,程序員負(fù)責(zé)在何時用 free 或 delete存期自己決定,使用非常靈活。內(nèi)存。動態(tài)內(nèi)存的生7. new/delete 與 malloc()/free() 的區(qū)別?malloc() 與 free() 是 C 語言的標(biāo)準(zhǔn)庫函數(shù), new/delete 是 C+的運算符, 他們都可以用來申請和內(nèi)存, malloc()和 free()不在編譯器控
6、制權(quán)限之內(nèi), 不能把構(gòu)造函數(shù)和析構(gòu)函數(shù)的任務(wù)強加給他們。 8. #include和#includea.h區(qū)別?答:對于#include ,編譯器從標(biāo)準(zhǔn)庫路徑開始搜索 a.h 對于#includea.h ,編譯器從用戶的工作路徑開始搜索 a.h9. 在 C+ 程序中調(diào)用被 C 編譯器編譯后的函數(shù),為什么要加 extern C?C+語言支持函數(shù)重載,C 語言不支持函數(shù)重載。函數(shù)被 C+編譯后在庫中的名字與 C 語言的不同。假設(shè)某個函數(shù)的原型為: void foo(x,y);該函數(shù)被 C 編譯器編譯后在庫中的名字為_foo, 而 C+ 編譯器則會產(chǎn)生像_foo_之類的名字。C+提供了 C 連接交換指
7、定符號 externC來解決名字匹配問題。10. C+中的多態(tài)性? 是如何實現(xiàn)的?多態(tài)性是面象程序設(shè)計語言繼數(shù)據(jù)抽象和繼承之后的第三個基本特征。它是在運行時出現(xiàn)的多態(tài)性通過派生類和虛函數(shù)實現(xiàn)?;惡团缮愔惺褂猛瑯拥暮瘮?shù)名, 完成不同的操作具體實現(xiàn)相的另一類接口,即把 w h a t從h ow分離開來。多態(tài)性提高了代碼的組織性和可讀性,虛函數(shù)則根據(jù)類型的不同來進行不同的。11.動態(tài)特性?在絕大多數(shù)情況下, 程序的功能是在編譯的時候就確定下來的,稱之為靜態(tài)特性。 反之, 如果程序的功能是在運行時刻才能確定下來的, 則稱之為動態(tài)特性。C+中, 虛函數(shù),抽象基類, 動態(tài)綁定和多態(tài)特性。了出色的動態(tài)1
8、2.封裝?C+中是如何實現(xiàn)的?封裝來源于信息隱藏的設(shè)計理念, 是通過特性和行為的組合來創(chuàng)建新數(shù)據(jù)類型讓接口與具體實現(xiàn)相。C+中是通過類來實現(xiàn)的, 為了盡量避免某個面試題 1:變量的為變量分配地址和和定義區(qū)別空間的稱為定義,不分配地址的稱為。一個變量可以在多個地方,說明此變量將在文件以,但是只在一個地方定義。加入 extern 修飾的是變量的外或在文件后面部分定義。說明:很多時候一個變量,只是空間,如外部變量。不分配內(nèi)存空間,直到具體使用時才初始化,分配內(nèi)存鏈表和數(shù)組區(qū)別數(shù)組和鏈表有以下幾點不同:(1)形式:數(shù)組是一塊連續(xù)的空間,時就要確定長度。鏈表是一塊可不連續(xù)的動態(tài)空間,長度可變,每個結(jié)點要
9、保存相鄰結(jié)點指針。模塊的行為干擾同一系統(tǒng)中的其它模塊,應(yīng)該讓模塊僅僅公開必須讓外界知道的接口。RTTI?RTTI 事指運行時類型識別(Run-time type identification)在只有一個指向基類的指針或 時確定一個對象的準(zhǔn)確類型。拷貝構(gòu)造函數(shù)?它是單個參數(shù)的構(gòu)造函數(shù),其參數(shù)是與它同屬一類的對象的(常) ;類定義中,如果未提供自己的拷貝構(gòu)造函數(shù),C+提供一個默認(rèn)拷貝構(gòu)造函數(shù),該默認(rèn)拷貝構(gòu)造函數(shù)完成一個成員到一個成員的拷貝深淺拷貝?淺拷貝是創(chuàng)建了一個對象用一個現(xiàn)成的對象初始化它的時候只是 了成員(簡單賦值)而沒有拷貝分配給成員的資源(如給其指針變量成員分配了動態(tài)內(nèi)存); 深拷貝是當(dāng)
10、一個對象創(chuàng)建時,如果分配了資源,就需要定義自己的拷貝構(gòu)造函數(shù),使之不但拷貝成員也拷貝分配給它的資源。面象程序設(shè)計的優(yōu)點?開發(fā)時間短, 效率高, 可靠性高。面 象編程的編碼具有 重用性,可以在應(yīng)用程序中大量采用成 類庫(如 STL),從而雖短了開發(fā)時間,易于和升級。(2)數(shù)據(jù)查找:數(shù)組的線性查找速度快,查找操作直接使用偏移地址。鏈表需要按順序檢索結(jié)點,效率低。(3)數(shù)據(jù)或刪除:鏈表可以快速和刪除結(jié)點,而數(shù)組則可能需要大量數(shù)據(jù)移動。(4)越界問題:鏈表不存在越界問題,數(shù)組有越界問題。說明:在選擇數(shù)組或鏈表數(shù)據(jù)結(jié)構(gòu)時,一定要根據(jù)實際需要進行選擇。數(shù)組便于查詢,鏈表便于刪除。數(shù)組節(jié)省空間但是長度固定,
11、鏈表雖然變長但是占了的空間。面試題 17:簡述類成員函數(shù)的重寫、重載和隱藏的區(qū)別重寫和重載主要有以下幾點不同。范圍的區(qū)別:被重寫的和重寫的函數(shù)在兩個類中,而重載和被重載的函數(shù)在同一個類中。參數(shù)的區(qū)別:被重寫函數(shù)和重寫函數(shù)的參數(shù)列表一定相同,而被重載函數(shù)和重載函數(shù)的參數(shù)列表一定不同。virtual 的區(qū)別:重寫的基類中被重寫的函數(shù)必須要有 virtual 修飾,而重載函數(shù)和被重載函數(shù)可以被7virtual 修飾,也可以沒有。隱藏和重寫、重載有以下幾點不同。與重載的范圍不同:和重寫一樣,隱藏函數(shù)和被隱藏函數(shù)不在同一個類中。參數(shù)的區(qū)別:隱藏函數(shù)和被隱藏的函數(shù)的參數(shù)列表可以相同,也可不同,但是函數(shù)名肯
12、定要相同。當(dāng)參數(shù)不相同時,無論基類中的參數(shù)是否被 virtual 修飾,基類的函數(shù)都是被隱藏,而不是被重寫。說明:雖然重載和覆蓋都是實現(xiàn)多態(tài)的基礎(chǔ),但是兩者實現(xiàn)的技術(shù)完全不相同,達(dá)到的目的也是完全不同的,覆蓋是動態(tài)態(tài)綁定的多態(tài),而重載是靜態(tài)綁定的多態(tài)面試題 18:簡述多態(tài)實現(xiàn)的原理編譯器發(fā)現(xiàn)一個類中有虛函數(shù),便會立即為此類生成虛函數(shù)表 vtable。虛函數(shù)表的各表項為指應(yīng)虛函數(shù)的指針。編譯器還會在此類中隱含一個指針 vptr(對 vc 編譯器來說,它插在類的第一個位置上)指向虛函數(shù)表。調(diào)用此類的構(gòu)造函數(shù)時,在類的構(gòu)造函數(shù)中,編譯器會隱含執(zhí)行 vptr 與 vtable 的關(guān)聯(lián)代碼,將 vptr 指應(yīng)的 vtable
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 涂料購買合同范本
- 2024年林地合作經(jīng)營合同書
- 場地借用協(xié)議
- 標(biāo)準(zhǔn)房屋抵押合同范本
- 成都市家庭清潔工程合同示范
- 2024年空心磚購銷合同
- 車輛買賣合同范本經(jīng)典版
- 廣東省房產(chǎn)租賃協(xié)議模板
- 2024年招投標(biāo)的實習(xí)報告
- 大學(xué)生臨時就業(yè)協(xié)議書
- 建筑防水工程技術(shù)規(guī)程DBJ-T 15-19-2020
- ESG系列研究報告:可持續(xù)航空燃料(SAF)
- 2024中國電力建設(shè)集團(股份)公司總部部門內(nèi)設(shè)機構(gòu)負(fù)責(zé)人及以下崗位人員招聘筆試參考題庫含答案解析
- 13區(qū)域分析與區(qū)域規(guī)劃(第三版)電子教案(第十三章)
- (2024年)人體生理解剖學(xué)圖解
- 質(zhì)量改進計劃及實施方案
- 2024年山東青島城投金融控股集團有限公司招聘筆試參考題庫含答案解析
- 人生觀的主要內(nèi)容講解
- 醫(yī)院培訓(xùn)課件:《RCA-根本原因分析》
- 苯妥英鋅的合成1(修改)
- 信創(chuàng)醫(yī)療工作總結(jié)
評論
0/150
提交評論