版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、CPP復(fù)習(xí)題答案精品資料選擇題1 . C+語言本身沒有定義I/O操作,C+標(biāo)準(zhǔn)庫iostream提供了基本的I/O類。I/O操作分別由兩個(gè)類istream秋C )提供,由它們派生出一 個(gè)類iostream,提供雙向I/O操作。A. fstreamB iostreamC ostreamD cout2. 引入內(nèi)聯(lián)函數(shù)的主要目的是(B )。A. 縮短程序代碼,少占用內(nèi)存空間B. 既可以保證程序的可讀性,又能提高程序的運(yùn)行效率C. 占用內(nèi)存空間少,執(zhí)行速度快D. 使程序的結(jié)構(gòu)比較清晰3. 重載函數(shù)是(A )A. 以函數(shù)參數(shù)來區(qū)分,而不用函數(shù)的返回值來區(qū)分不同的函數(shù)B. 以函數(shù)的返回值來區(qū)分,而不用函數(shù)
2、參數(shù)來區(qū)分不同的函數(shù)C. 參數(shù)表完全相同而返回值類型不同的兩個(gè)或多個(gè)同名函數(shù)D. 參數(shù)表和返回值類型都必須是不同的兩個(gè)或多個(gè)同名函數(shù)4. 在C+中,數(shù)據(jù)封裝要解決的問題是(D )。A. 數(shù)據(jù)的規(guī)范化B.便于數(shù)據(jù)轉(zhuǎn)換C.避免數(shù)據(jù)丟失D.防止不同模塊之間數(shù)據(jù)的非法訪問5. 下列特性中,(B )不是面向?qū)ο蟮某绦蛟O(shè)計(jì)的特征。A.繼承B.內(nèi)聯(lián)函數(shù)C.多態(tài)性D.封裝6類B的對象必定是類A的對象,但是類A的對象卻不屬于類B,則類 B和類A之間的關(guān)系是(C )。A.組合關(guān)系B.間接關(guān)系C.繼承關(guān)系D.直接關(guān)系7.下面對于友元函數(shù)描述正確的是(C )。僅供學(xué)習(xí)與交流.如冇侵權(quán)請聯(lián)系網(wǎng)站刪除謝謝2精品資料A.
3、友元函數(shù)的實(shí)現(xiàn)必須在類的內(nèi)部定義B.友元函數(shù)是類的成員函數(shù)C.友元函數(shù)破壞了類的封裝性D.友元函數(shù)不能訪問類的私有成員 &以下關(guān)于析構(gòu)函數(shù)的描述中(C )是錯(cuò)誤的。A. 析構(gòu)函數(shù)聲明和定義中沒有形參B.析構(gòu)函數(shù)可以定義為內(nèi)聯(lián)函 數(shù)。C.析構(gòu)函數(shù)可以重載D.析構(gòu)函數(shù)可以定義為虛函數(shù)。9. 下面敘述錯(cuò)誤的是(A )oA. 基類的protected成員在派生類中仍然是protected的B. 基類的protected成員在public派生類中仍然是protected的。C. 基類的protected成員在private派生類中是private的。D. 基類的protected成員不能被派生類的對象訪
4、問。10. 如果一個(gè)類至少有一個(gè)純虛函數(shù),那么就稱該類為(A )。A.抽象類 B.虛基類C.派生類D.以上都不對11當(dāng)公有繼承時(shí),基類的(D)在派生類中成為保護(hù)成員,不能通過派 生類的對象來直接訪問該成員。A. 任何成員B.公有成員和保護(hù)成員C.保護(hù)成員和私有成員D.保護(hù)成員12. 當(dāng)私有繼承時(shí),基類的(A )在派生類中成為私有成員,不能通過派 生類的對象來直接訪問該成員。A. 任何成員B.公有成員和保護(hù)成員C.保護(hù)成員和私有成員 D.私有成員僅供學(xué)習(xí)與交流,如有侵權(quán)請聯(lián)系網(wǎng)站刪除謝謝3精品資料13. 派生類的對象對它的基類成員中(A )是可以采用對象或者對象指針- 的方式訪問的。A. 公有繼
5、承的公有成員B.公有繼承的私有成員C.公有繼承的保護(hù)成員D.私有繼承的公有成員14. 關(guān)于純虛函數(shù)和抽象類的描述中,錯(cuò)誤的是(C )。A. 純虛函數(shù)是一種特殊的虛函數(shù),它沒有具體的實(shí)現(xiàn)。B. 抽象類是指具有純虛函數(shù)的類。C. 個(gè)基類中說明有純虛函數(shù),該基類的派生類一定不再是抽象類。D. 抽象類只能作為基類來使用,其純虛函數(shù)的實(shí)現(xiàn)由派生類給出。15. 下列說法錯(cuò)誤的是(C )。A. 若語言只支持類而不支持多態(tài),則不能稱為面向?qū)ο蟮摹. 在運(yùn)行時(shí)根據(jù)其類型確定調(diào)用哪個(gè)函數(shù)的能力叫多態(tài)性。C. 靜態(tài)多態(tài)性也是在運(yùn)行時(shí)根據(jù)其類型確定調(diào)用哪個(gè)函數(shù)。D. C+中的靜態(tài)多態(tài)性是通過函數(shù)重載進(jìn)行實(shí)現(xiàn)的。16
6、. ( D )不是構(gòu)造函數(shù)的特征A.構(gòu)造函數(shù)的函數(shù)名與類名相同。B.構(gòu)造函數(shù)可以重載。C.構(gòu)造函數(shù)可以設(shè)置缺省參數(shù)。D.構(gòu)造函數(shù)必須指定類型說明。17 .下列標(biāo)識符中,A不是C+的關(guān)鍵字;A. cinC. this18下列標(biāo)識符中,B privateA 不是C+的關(guān)鍵字;D operatorA.coutB. virtualC. thisD. template18下列標(biāo)識符中,A不是C+的關(guān)鍵字;A.coutC. this19下列標(biāo)識符中,B. publicA 不是C+的關(guān)鍵字;D sizeofA.coutB. deleteC. thisD. sizeof僅供學(xué)習(xí)與交流.如有侵權(quán)請聯(lián)系網(wǎng)站刪除謝
7、謝4精品資料20 .下列標(biāo)識符中,A 不是C+的關(guān)鍵字;A. coutB. new C. thisD void21 引用是一個(gè)變量的別名,下列關(guān)于的引用的描述,正確的是(A )。A .引用的值與被引用變量的值相等.內(nèi)存地址相同;B .引用的值與被引用變量的值相等,內(nèi)存地址不相同;C .引用的值與被引用變量的值不等.內(nèi)存地址相同;D .引用的值與被引用變量的值不等,內(nèi)存地址不同;22 公有繼承時(shí),子類的訪問接口由(D)組成:A. 父類的非私有成員和子類的非私有成員;B. 父類的公有成員和子類的非私有成員;C. 父類的非私有成員和子類的公有成員;D. 父類的公有成員和子類的公有成員;23 公有繼承
8、時(shí),子類對象只可訪問父類中的(B)和子類自己的公有 成員。A .非私有成員;B .公有成員;C .私有成員;D .保護(hù)成員;24 公有繼承時(shí),子類成員函數(shù)不可以直接訪問父類中(C)。A .非私有成員;B .公有成員;C .私有成員;D .保護(hù)成員;25 公有繼承時(shí),子類對象和子類成員函數(shù)必須通過父類(A)的成員 函數(shù)訪問父類私有成員。僅供學(xué)習(xí)與交流,如有侵權(quán)請聯(lián)系網(wǎng)站刪除謝謝5精品資料A .非私有;B .非公有;C .靜態(tài);D .私有;26 下列關(guān)于虛函數(shù)的描述,正確的是(C)。A. 靜態(tài)成員函數(shù)可以是虛函數(shù);B. 構(gòu)造函數(shù)可以是虛函數(shù);C. 析構(gòu)函數(shù)可以是虛函數(shù);D. 內(nèi)聯(lián)函數(shù)可以是虛函數(shù);
9、27 .下列關(guān)于虛函數(shù)的描述,正確的是(B )。A. 靜態(tài)成員函數(shù)可以是虛函數(shù);B. 構(gòu)造函數(shù)不可以是虛函數(shù);C. 析構(gòu)函數(shù)不可以是虛函數(shù);D. 內(nèi)聯(lián)函數(shù)可以是虛函數(shù);28 下列關(guān)于虛函數(shù)的描述,錯(cuò)誤的是(B)。A. 靜態(tài)成員函數(shù)不可以是虛函數(shù);B. 構(gòu)造函數(shù)可以是虛函數(shù);C. 析構(gòu)函數(shù)可以是虛函數(shù);D. 內(nèi)聯(lián)函數(shù)不可以是虛函數(shù);29 下列關(guān)于虛函數(shù)的描述,錯(cuò)誤的是(C)。A. 靜態(tài)成員函數(shù)不可以是虛函數(shù);B. 構(gòu)造函數(shù)不可以是虛函數(shù); 僅供學(xué)習(xí)與交流,如有侵權(quán)請聯(lián)系網(wǎng)站刪除謝謝6精品資料C. 析構(gòu)函數(shù)不可以是虛函數(shù);D. 內(nèi)聯(lián)函數(shù)不可以是虛函數(shù);注:靜態(tài)成員函數(shù)不能是虛函數(shù);內(nèi)聯(lián)函數(shù)不能是虛
10、函數(shù);構(gòu)造函數(shù)不能是虛函數(shù);析構(gòu)函數(shù)可以是虛函數(shù),且通常聲明 為虛函數(shù)。填空題1. 在C+程序中.使用基本輸入輸出流需要包含的頭文件是iostream.h 2. 具有相同函數(shù)名但具有不同參數(shù)表的函數(shù)稱為重載函數(shù)O3. 在一個(gè)函數(shù)的定義或聲明前加上關(guān)密字inline時(shí),該函數(shù)就聲明為 內(nèi)聯(lián)函數(shù)。4. 當(dāng)一個(gè)類對象的成員函數(shù)被調(diào)用時(shí),該成員函數(shù)的this指針指向調(diào)用它的對象。5. 在撤銷類的對象時(shí),C+程序?qū)⒆詣诱{(diào)用該對象的析構(gòu) 函數(shù)。6. 對類中的成員函數(shù)和屬性的訪問是通過public 、 private和protected& 3個(gè)關(guān)鍵字來控制的。僅供學(xué)習(xí)與交流,如有侵權(quán)請聯(lián)系網(wǎng)站刪除謝謝7精品
11、資料7. 當(dāng)用public繼承從基類派生一個(gè)類時(shí),基類的public成員成為派生 類的_public_j員,protected成員成為派生類的protected _ 成員。8. 有如下定義語句:MyClass p10, *q;則系統(tǒng)自動調(diào)用該類構(gòu)造函數(shù)次。當(dāng)類對象數(shù)組P離開它的作用域時(shí),系統(tǒng)自動調(diào)用該類析構(gòu)函數(shù) 衛(wèi) 次。9. 在類定義中,將込置于虛函數(shù)的函數(shù)原型的末尾可以將該函數(shù)聲明 為純虛函數(shù)。10. 帶有純虛函數(shù)的類稱為抽象類.它只能作為其他派生類的基類來使用。11假定用戶沒有給一個(gè)名為MyClass的類定義析構(gòu)函數(shù),則系統(tǒng)為其定義的默認(rèn)析構(gòu)函數(shù)形式為MyClass:MyClass()12
12、. 有如下定義語句:MyClass *p;,則執(zhí)行p=new MyClass;語句時(shí),將自動調(diào)用該類的 構(gòu)造函數(shù) 執(zhí)行delete p;語句時(shí),將自動調(diào)用該類的 析構(gòu)函數(shù)。13. 有如下對象數(shù)組定義語句:MyClass *p10;當(dāng)對象指針數(shù)組p離開它的 作用域時(shí),系統(tǒng)自動調(diào)用該類析構(gòu)函數(shù)次。指針不調(diào)用,申請 內(nèi)存時(shí)才調(diào)用。僅供學(xué)習(xí)與交流,如有侵權(quán)請聯(lián)系網(wǎng)站刪除謝謝8精品資料14在結(jié)構(gòu)定義中,數(shù)據(jù)和成員函數(shù)默認(rèn)權(quán)限是公有的。在類定義中數(shù)據(jù) 和成員函數(shù)默認(rèn)權(quán)限果私有的C15. C+是混合性程序設(shè)計(jì)語言,既支持面向過程,又支持面向 對 象 n16 .面向?qū)ο蟪绦蛟O(shè)計(jì)的三大特點(diǎn):封裝、繼承、多態(tài)。1
13、7 .重載函數(shù)調(diào)用時(shí),編譯器按返回類型、參數(shù)類型、參數(shù)個(gè)數(shù)、參數(shù) 順序進(jìn)行匹配,重載函數(shù)至少在參數(shù)個(gè)數(shù)、參數(shù)類型、或參數(shù)順 序上有所不同。18 .函數(shù)模板比函數(shù)重載的表達(dá)更簡潔,但只有 參數(shù)個(gè)數(shù)相同、函 數(shù)體相同,僅類型不同的函數(shù)才能定義模板。19 . void型指針是通用型指針,僂匸類型的指針值都可以賦給void類 型指針,但使用時(shí)必須進(jìn)行顯式轉(zhuǎn)換,否則出錯(cuò)。20 .在程序中使用運(yùn)算符new申請內(nèi)存,應(yīng)該相應(yīng)地使用運(yùn)算符delete 來釋放申請的內(nèi)存。22 . JAVA是純面向?qū)ο笳Z言,C+是混合性程序設(shè)計(jì)語言,混合語言的 特點(diǎn)是既支持傳統(tǒng)的程序設(shè)計(jì)方法,又支持面向?qū)ο蟪绦蛟O(shè)計(jì)方法。23 .
14、類是一數(shù)據(jù)和代碼的復(fù)合體。數(shù)據(jù)(成員)和(成員)函數(shù) 也OK !24 .類可以有多個(gè)構(gòu)造函數(shù),有一個(gè)析構(gòu)函數(shù)。僅供學(xué)習(xí)與交流,如有侵權(quán)請聯(lián)系網(wǎng)站刪除謝謝9精品資料25 .若類中一個(gè)構(gòu)造函數(shù)都沒有,則C卄自動提供一個(gè)無參數(shù)的 默認(rèn) 構(gòu)造函數(shù),負(fù)責(zé)創(chuàng)建對象。26 .類中const數(shù)據(jù)成員 和引用類型的數(shù)據(jù)成員必須在該類的對象建 立的同時(shí)進(jìn)行初始化,這種初始化只能用成員初始化列表進(jìn)行。27 .在類中使用static聲明的成員稱為靜態(tài)成員。28 靜態(tài)成員函數(shù)在類中只有語法上的作用,它不是對象的成員,沒有 虹指針,必須將對象作為參數(shù)傳入,才能在靜態(tài)成員函數(shù)訪問該對象 的成員。29 .友元函數(shù)是對設(shè)計(jì)類時(shí)
15、未定義完整操作集的補(bǔ)充,是類外的函數(shù), 它不是對象的成員函數(shù),沒有this指針,必須將對象作為參數(shù)傳入。30. C程序是由一組 函數(shù) 組成的,C+面向?qū)ο蟪绦蚴怯梢唤M蠱組 成的。31 面向?qū)ο蟮某绦蛟O(shè)計(jì)主要是類的設(shè)計(jì),在編譯時(shí),一個(gè)面向?qū)ο蟮?系統(tǒng)由類組成.在運(yùn)行時(shí),系統(tǒng)由對象組成32 .單一繼承形成一個(gè)倒掛的樹;多重繼承形成一個(gè)有向無環(huán)圖33 .當(dāng)類中包含虛擬函數(shù)時(shí),C+編譯器為類加上一個(gè)虛函數(shù)指針, 該指針指向虛擬函數(shù)表。34 .當(dāng)類中包含虛擬函數(shù)時(shí),C+編譯器為類加上一個(gè)虛函數(shù)指針,該 指針指向虛擬函數(shù)表。僅供學(xué)習(xí)與交流,如有侵權(quán)請聯(lián)系網(wǎng)站刪除謝謝10精品資料35 .包含康擬函數(shù)的類通過
16、vptr指針 和 虛擬函數(shù)表 可以在程序運(yùn) 行時(shí)依據(jù)指針實(shí)際指向的對象調(diào)用對應(yīng)的虛擬函數(shù),從而實(shí)現(xiàn)多態(tài),達(dá) 到動態(tài)綁定的目的。36 .派生類的對象可以賦給基類的對象;由于基類對象不具有派生類對 象所具有的成員,因此基類的對象不可以賦值給派生類對象。37 .運(yùn)算符重載的實(shí)質(zhì)就是一函數(shù)重載n通過運(yùn)算符重載可以使應(yīng)用于 基本數(shù)據(jù)類型的運(yùn)算符作用于用戶自定義數(shù)據(jù)類型。問答題:1面向過程和面向?qū)ο笤诔绦蚪M織方式上的差別?面向過程的核心是功能的分解,最終的程序由過程構(gòu)成,將數(shù)據(jù)結(jié)構(gòu) 和過程作為兩個(gè)實(shí)體對待,著重點(diǎn)在過程。缺點(diǎn)就是一旦數(shù)據(jù)結(jié)構(gòu)需要 變更.需修改與之有關(guān)的所有模塊。面向?qū)ο笾袛?shù)據(jù)構(gòu)成軟件分解的
17、基礎(chǔ),而不是功能,數(shù)據(jù)與定義在在它 上面的用戶需要構(gòu)成整體,數(shù)據(jù)本身不能被外部程序和過程直接存取 程序一般由類的定義和類的使用兩部分組成,在主程序中定義各對象并 規(guī)定它們之間傳遞消息的規(guī)律n程序中的一切操作都是通過向?qū)ο蟀l(fā)送 消息來實(shí)現(xiàn),對象接收到消息后,啟動有關(guān)方法完成操作。類由繼承關(guān) 系產(chǎn)生相互的聯(lián)系。2.C+中采用類的概念將數(shù)據(jù)以及處理數(shù)據(jù)的函數(shù)封裝在一起的好處?僅供學(xué)習(xí)與交流,如有侵權(quán)請聯(lián)系網(wǎng)站刪除謝謝11精品資料C+采用類(class)的概念將數(shù)據(jù)以及處理數(shù)據(jù)的函數(shù)封裝在一起,將一 部分行為作為外部訪問的接口與外部發(fā)生聯(lián)系,而將數(shù)據(jù)和其他行為進(jìn) 行有效隱藏,就可以達(dá)到對數(shù)據(jù)訪問權(quán)限的
18、合理控制。通過這種有效隱 藏和合理控制,就可以增強(qiáng)數(shù)據(jù)的安全性,減輕開發(fā)軟件系統(tǒng)的難度。 3面向?qū)ο蟪绦蛟O(shè)計(jì)具有哪三大特點(diǎn)及其目的?封裝,繼承,多態(tài)封裝,也就是把客觀事物封裝成抽象的類,并且類可以把自己的數(shù)據(jù)和 方法只讓可信的類或?qū)ο蟛僮鳎瑢Σ豢尚诺倪M(jìn)行信息隱藏,繼承:可以使用類的現(xiàn)有類的所有功能,并在無需編寫原來類的情況下 對這些功能進(jìn)行擴(kuò)展n多態(tài):允許將子類類型的指針賦值給父類類型的指針。4. C+程序設(shè)計(jì)語言中this指針的作用?個(gè)對象的this指針并不是對象本身的一部分,不會影響sizeof(對象)的結(jié)果。(his作用域是在類內(nèi)部,當(dāng)在類的非靜態(tài)成員函數(shù)中訪問類的非靜態(tài)成員的時(shí)候, 編
19、譯器會自動將對象本身的地址作為一個(gè)隱含參數(shù)傳遞給函數(shù)。也就是說,即使你 沒有寫上this指針,編譯器在編譯的時(shí)候也是加上this的,它作為非靜態(tài)成員函數(shù) 的隱含形參,對各成員的訪問均通過this進(jìn)行。5. C+程序設(shè)計(jì)語言中虛函數(shù)指針和虛函數(shù)表的作用?C+編譯器為每個(gè)“內(nèi)含虛擬函數(shù)的類建立一個(gè)虛擬函數(shù)表(vtable),表 中每一個(gè)指針元素指向一個(gè)虛擬函數(shù)的地址,編譯器為類加上一個(gè)成員 變量vpy vptr是一個(gè)指向虛擬函數(shù)表的指針。每一個(gè)派生類的對象, 都有一個(gè)vptr,對象調(diào)用虛擬函數(shù)就是通過vptr找到虛擬函數(shù)表,再找 僅供學(xué)習(xí)與交流,如有侵權(quán)請聯(lián)系網(wǎng)站刪除謝謝12 精品資料 到虛擬函數(shù)
20、的真正地址。虛擬函數(shù)表的內(nèi)容是依據(jù)類中的虛擬函數(shù)聲明 次序一一填入函數(shù)指針。派生類繼承基類的虛擬函數(shù)表.派生類中改寫 虛擬函數(shù).虛擬函數(shù)表中元素所指的函數(shù)地址不再是基類的函數(shù)地址, 而是派生類的函數(shù)地址。包含虛擬函數(shù)的類通過vptr指針和虛擬函數(shù)表可以在程序運(yùn)行時(shí)依據(jù)指 針實(shí)際指向的對象調(diào)用對應(yīng)的虛擬函數(shù).從而實(shí)現(xiàn)多態(tài)(Polymorphism)。 為了達(dá)到動態(tài)綁定的目的,虛擬函數(shù)是了解多態(tài)(Polymorphism)以及動態(tài) 綁定的關(guān)鍵.同時(shí)也是了解如何使用MFC的關(guān)鍵。6. C+程序設(shè)計(jì)語言是如何實(shí)現(xiàn)多態(tài)的?共用同一個(gè)函數(shù)名,同時(shí)有不同數(shù)量或者不同類型的參數(shù)。系統(tǒng)會根據(jù)參數(shù)自動 調(diào)用對應(yīng)的
21、函數(shù),這樣就實(shí)現(xiàn)了多態(tài)7為什么析構(gòu)函數(shù)通常聲明為虛函數(shù),而構(gòu)造函數(shù)不能是虛函數(shù)?因?yàn)闃?gòu)造函數(shù)不被繼承,而虛函數(shù)是要在派生類中重定義的。定義虛析構(gòu)函數(shù)后,由于多態(tài),當(dāng)使用基類指針指向派生類對象時(shí),會調(diào)用派生類的虛構(gòu)函數(shù),然 后派生類的析構(gòu)函數(shù)自動調(diào)用基本析構(gòu)函數(shù)。不是虛的話,直接調(diào)用基類的析構(gòu)函 數(shù)了。如果派生類中有用new分配的內(nèi)存,就無法釋放。&為什么子類對象可以給父類對象賦值,而父類對象不能給子類對象賦 值?父類定義為抽象接口類,子類繼承父類然后重新實(shí)現(xiàn)接口。C+中子類的對象賦 值給父類的對象。如果把子類的對象賦值給父類的對象,只是把子類中的父類子對 象賦值給父類的對象,父類的對象無法擁有
22、子類特有的成員。9類中的靜態(tài)成員與類的數(shù)據(jù)成員有什么區(qū)別?靜態(tài)數(shù)據(jù)成員是擁有全局壽命的成員,即在文件的開始到結(jié)束期間,內(nèi)存始終都 為其分配存儲單元,它可以是局部變量,也可以使全局變量。非靜態(tài)數(shù)據(jù)成員,其 壽命局限于其塊作用域,從“后定義開始到遇到“”代表其結(jié)束,內(nèi)存自動釋放空 間。僅供學(xué)習(xí)與交流,如有侵權(quán)請聯(lián)系網(wǎng)站刪除謝謝13精品資料10.深拷貝和淺拷貝的區(qū)別?當(dāng)出現(xiàn)類的等號賦值時(shí),會調(diào)用拷貝函數(shù)在未定義顯示拷貝構(gòu)造函數(shù)的情況下, 系統(tǒng)會調(diào)用默認(rèn)的拷貝函數(shù)即淺拷貝,它能夠完成成員的一一復(fù)制。當(dāng)數(shù)據(jù)成 員中沒有指針時(shí),淺拷貝是可行的。但當(dāng)數(shù)據(jù)成員中有指針時(shí),如果采用簡單的淺 拷貝,則兩類中的兩個(gè)
23、指針將指向同一個(gè)地址,當(dāng)對象快結(jié)束時(shí),會調(diào)用兩次析構(gòu) 函數(shù),而導(dǎo)致指針懸掛現(xiàn)象。所以,這時(shí),必須采用深拷貝。深拷貝與淺拷貝的區(qū) 別就在于深拷貝會在堆內(nèi)存中另外申請空間來儲存數(shù)據(jù),從而也就解決了指針懸掛 的問題。簡而言之,當(dāng)數(shù)據(jù)成員中有指針時(shí),必須要用深拷貝。11指針類型的作用?子類指針與父類指針強(qiáng)制轉(zhuǎn)換時(shí)要注意什么?因?yàn)樽宇悓?shí)例在內(nèi)存排列上先是把父類的所有內(nèi)容排在前面因此父類的指針指過 來時(shí)父類的各成員的偏移地址都是不變的.12何為抽象類?抽象類在程序中的作用?抽象類指的是含有純虛函數(shù)的類,該類不能建立對象,只能聲明指針和引用,用于基礎(chǔ)類的接口聲明和運(yùn)行時(shí)的多態(tài) 另外,如果抽象類的某個(gè)派生類在
24、向繼承體系的根回溯過程中,并不是所有的純虛 函數(shù)都實(shí)現(xiàn)了,該類也是抽象類,同樣不能建立對象。抽象類的主要作用是將有關(guān) 的組織在一個(gè)繼承層次結(jié)構(gòu)中,由它來為它們提供一個(gè)公共的根,相關(guān)的子類是從 這個(gè)根派生出來的。13運(yùn)算符重載的本質(zhì)是什么?有哪兩種實(shí)現(xiàn)方式?本質(zhì)就是對已有的運(yùn)算符重新進(jìn)行定義,賦予其另一種功能,以適應(yīng)不同的數(shù)據(jù) 類型。方式:1.定義為它將要操作的類的成員函數(shù)2.定義為類的友元函數(shù)。14.內(nèi)聯(lián)函數(shù)的優(yōu)缺點(diǎn)?通常在什么情況下使用?優(yōu)點(diǎn)是提高運(yùn)行時(shí)間效率,缺點(diǎn)是增加了空間開銷內(nèi)聯(lián)函數(shù)在C+類中,應(yīng)用最廣的,用來定義存取函數(shù)。我們定義的類中一般會 把數(shù)據(jù)成員定義成私有的或者保護(hù)的,這樣,
25、外界就不能直接讀寫我們類成員的數(shù) 據(jù)了。對于私有或者保護(hù)成員的讀寫就必須使用成員接口函數(shù)來進(jìn)行。如果我們把 這些讀寫成員函數(shù)定義成內(nèi)聯(lián)函數(shù)的話,將會獲得比較好的效率。讀程題僅供學(xué)習(xí)與交流,如有侵權(quán)請聯(lián)系網(wǎng)站刪除謝謝14精品資料1 在注釋符后面注明變量類型(全局變量、局部變量、靜態(tài)變量)及輸出纟吉果。#include iostream.hMint lengths 10;/變量類型:全局變量int countVolumn(int height);int countVolumn(int lengthjnt widthjnt height);void main() coutHlen
26、gth = vvlengthvvendl;/輸出結(jié)果:len0h=lO int length,width,height,vokimn; 變量類型:局部變量 length= 1;width二 1;height= 1;volumn=:length*width*height;cout體積二vvvoliimnvvendl; 輸岀結(jié)果:體積=10 volumn=countVokimn(widthJieight);cout體積二vwolumnvvendl; 輸岀結(jié)果:體積二 10 volumn=length*width*height;coutn體積二 Hvoluninendl; 輸岀結(jié)果:體積=1 vol
27、umn=countVolumn(length,width,height);cout體積二vvvoliimnvvendl; 輸出結(jié)果:體積二2 vokimn=countVokimn(Iength,widthJieight);cout體積二vwoliimnvvendl; 輸岀結(jié)果:體積二3int countVolumn(int widthjnt height)return length*width*height;int countVolumn(int lengthjnt widthjnt height)static int temp= 1; 變量類型:靜態(tài)變量temp=temp+Iength;re
28、turn temp*width*height;僅供學(xué)習(xí)與交流.如有侵權(quán)請聯(lián)系網(wǎng)站刪除謝謝15精品資料2下列程序給出了基類CFurniture及其派生類CDesk的描述,分析成員 函數(shù)Showinfo ()和main()中帶下劃線的代碼行正確性,并依據(jù)注釋行 的提示給出結(jié)果。#include Miostream.hMclass CFurnitureprivate:double Weight;protected:int Material;public:int Color;public:CFurniture (int cjnt m.double w)Color=c; Material=m;Weigh
29、t=w; CFurniture ()double GetWeight()return Weight;)int GetMaterial() return Material;int GetColor() return Color;;class CDesk:public CFurnitureprivate:int LengthWidth;public:int Height;public:CDesk (int H,int LJnt W,int c, int m, double w): CFurniture (c,m,w) Height=H; Length=L; Width=W;) CDesk ()vo
30、id Showlnfo();void CDesk:ShowInfo()/注:可訪問的,不需要修改。判斷該成員函數(shù)中能否訪問下列數(shù)據(jù),如不可訪問,改為可訪問coutLenthendl; 判斷:可訪問修改:coutWidthendl; 判斷:可訪問修改:coutHeiihtendl; 判斷:可訪問修改:coutColorendl; 判斷:可訪問修改:coutMaterialendl; /判斷:可訪問修改:coutWeihtendl; 判斷:不可訪冋修改:coutvvGetWeight()vvendl:僅供學(xué)習(xí)與交流.如有侵權(quán)請聯(lián)系網(wǎng)站刪除謝謝16精品資料void main()/判斷帶下劃線代碼行的
31、正確性,如正確,寫岀結(jié)果;如不正確,寫岀 原因CDesk mDesk( 1,2,34500);coutvv mDesk.Lengthvvendl;/判斷: 錯(cuò) 原因或結(jié)果 子類對象 不可直接訪問類的私有成員coutvv mDesk.Widthvvendl;/判斷:錯(cuò)原因或結(jié)果 子類對象不可直接訪問類的私有成員coutvv mDesk.Heightvvendl;/判斷:正確 原因或纟吉果 1coutvv mDeskColorvVendl; 判斷 : 正確 原因或纟吉果 4coutvv mDeskMaterialvvendl;/判斷:錯(cuò)原因或結(jié)果子類對象不可直接訪問父類的保護(hù)成員coutvv mD
32、esk. Weight vvendl;/判斷: 錯(cuò) 原因或纟吉果 子類對象 不可直接訪問父類的保護(hù)成員3下列程序是關(guān)于虛擬函數(shù)與多態(tài)的。讀程序,寫出程序運(yùn)行結(jié)果。#include Miostream.hM class CShape public:int color;public:virtual void display() coutHShape nH;);class CRect:public CShape public:double length,width;public:virtual void display() coutHRectangIe n; ); class CSquare:pub
33、lic CRect public:double edgeLength;public:aShape.color=l; aRect.coloi-2; aSquare.coloi-3;virtual void display() coutHSquare nn; ); void main()CShape aShape;CRect aRect;CSquare aSquare;CShape *pShape = &aShape汕&aRect,&aSquare; 僅供學(xué)習(xí)與交流.如有侵權(quán)請聯(lián)系網(wǎng)站刪除謝謝17精品資料for(int i=0;iv3;i+)pS hape i-display(); coutpSh
34、apei-colorendl;)(CRect *)pShapeO)-display(); cout (CShape *)pShapei)-colorendl;運(yùn)行結(jié)果為:Shape1Rectangle2Square3Shape14依據(jù)下列類的繼承的描述,參照示意圖、回答main函數(shù)中的問題。class CBasepublic: int x;class BaseA:public CBasepublic:int a;;class BaseB :public CBasepublic: int b;class C: public BaseA. public BaseBpublic:char c;int
35、 addA() return BaseA:x + BaseB:x;);void main()判斷帶下劃線代碼行的正確性,如正確,寫岀結(jié)果;如不正確,寫出原因C mObj;僅供學(xué)習(xí)與交流.如有侵權(quán)請聯(lián)系網(wǎng)站刪除謝謝18精品資料mObj.x; 判斷:錯(cuò)原因或結(jié)果:產(chǎn)生二義性mObj.CBase:x;/判斷:錯(cuò) 原因或結(jié)果:產(chǎn)生二義性mObj. B ase A: x=5;mObj.BaseB:x=10;coutmObj.BaseA:xendl;/判斷:正確原因或結(jié)果:5coutvvmObjBaseB:xvvcndl;判斷 : 正確 原因或纟吉果 :10)21 分析下列程序?qū)懗銎溥\(yùn)行結(jié)果。#inclu
36、de #define N 100class CStack private: int stackN; int top;public:CStack() top=0; coutMHello ; CStack() coutvv”Bye”; void push(int i);int pop();void class CStack:push(int i)if (top=N)coutnOveiflowM; return;)else) top+;stacktop=i;)int class CStack:pop()僅供學(xué)習(xí)與交流.如有侵權(quán)請聯(lián)系網(wǎng)站刪除謝謝19精品資料int temp;if (top=0)cou
37、tnUnderflowH; return 0;else)temp=stacktop;top;return temp;void main()CStack *pti*=new CStack;ptr-push (100);ptr-push(60);cout ptr-pop( )Hcout ptr-pop( )H H;cout ,OK!,endl;delete ptr;答:Hello 60 100 OK IBye22.分析下列程序,寫出其運(yùn)行結(jié)果。#include class vehicle)int wheels;float weight;public:void message(void) cout
38、Vehicle messagenn; ;class car : public vehicle)int passenger_load;pub丘c:void message(void) cout uCar messagen;僅供學(xué)習(xí)與交流.如冇侵權(quán)請聯(lián)系網(wǎng)站刪除謝謝20精品資料class tiuck : public vehicle)int passenger_load:float pay load;public:int passengers(void) return passengerjoad;class boat : public vehicle)int passengerjoad;publi
39、c:int passengers(void) return passengerjoad; void message(void) cout Boat messagen;int main()vehicle *unicycle;unicycle = new vehicle; unicycle message();delete unicycle; unicycle = new car; unicycle -message();delete unicycle ;unicycle = new tnjck; unicycle -message(); delete unicycle ; unicycle =
40、new boat; unicycle -message();delete unicycle ; return 0;答:Vehicle messageVehicle messageVehicle messageVehicle message23.如果將上題第22小題中vehicle的成員函數(shù)message的定義改為:virtual void message(void) cout Vehicle message nn;寫出修改后的程序的運(yùn)行結(jié)果。答:Vehicle messageCar messageVehicle message Boat message21分析下列程序,寫出其運(yùn)行結(jié)果。#inc
41、lude class MyClasspublic:MyClass(int a)x=a;僅供學(xué)習(xí)與交流.如冇侵權(quán)請聯(lián)系網(wǎng)站刪除謝謝21精品資料void Funl()x+;void Fun2()x+=2;Jvoid Fun3()x+=3;Jvoid Print()coutnx=Hxend 1;private:;void main()MyClass my(8);void (MyClass:*pf)();my.Print();pf=MyClass:Funl; (my.*pf)(); my.Print();pf=MyClass:Fun2; (my.*pf)(); my.Print();pf=MyClas
42、s:Fun3; (my.*pf)(); my.Print();答:x=8x=9x=llx=1427.下列程序定義了一實(shí)部為mal,虛部為imag的復(fù)數(shù)類complex,并在類中重載了復(fù)數(shù)的+、-操作。請將下列程序補(bǔ)充完整。Class Complex)public:Complex(double r=0.0,double i=0.O)real=r;imag=i ; Complex operator +(Complex);friend Complex operator -(Complex,Complex);private:double reaLimag;Complex Complex: operat
43、or +(Complex c)thisreal+二c.reaLthis-imag+二 c.irrmg;return *this;Complex operator -(Complex cl,Complex c2)僅供學(xué)習(xí)與交流.如冇侵權(quán)請聯(lián)系網(wǎng)站刪除謝謝22精品資料return Complex( cl.real+c2waLclimag+c2imag26.下面程序是一個(gè)含有比較運(yùn)算符和賦值運(yùn)算符重載的程序,請?zhí)羁胀?成程序?qū)崿F(xiàn)該程序。#include class pointprivate:float x,y;public:point(float xx=O,float yy=0) x=xx,y=yy
44、 ;point(point&);point();bool operatoi-=(point);bool operator!=(point);point& opemto+=(point);float getx()return x;float gety() return y;point:point(point&x二p.getx().y二p.gety() ;bool point:operator=(point p)if(x=pgetx()&(y=p.gety()return 1;elsereturn 0;)bool point:operator!=(point p)if(x!二.etx()&(y!二
45、.ety()return 1;elseReturn 0;point& point: :operator+=(point p)this-x+=p.getx();this-y+=p.gety();return 水thisvoid main()僅供學(xué)習(xí)與交流.如冇侵權(quán)請聯(lián)系網(wǎng)站刪除謝謝23精品資料point pl(l,2),p2(3,4);p3(5,6); coutvvp 1 =p2? v(p 1 =p2)endl; cout?pl !=p2? ,5(pl !=p2)endl;p3+二pl;cout,p3+=p 1 ,p3: vp3.getx()p3.gety()endl;) 僅供學(xué)習(xí)與交流.如冇侵
46、權(quán)請聯(lián)系網(wǎng)站刪除謝謝24精品資料四.程序設(shè)計(jì)題1運(yùn)算符重載:依據(jù)下列關(guān)于矩陣類的描述,寫出+、-等操作符重載的 實(shí)現(xiàn)。不考#include niostream.hM#include stdlib.hclass CMvArraypublic:int raw,col;long *data;public:CMyArray(int m,int n);CMyArray() raw=0; col=0: data=NULL;CMyAiray()CMyArray operator + (CMyArray& B);寫出矩陣加法運(yùn)算符重載的 實(shí)現(xiàn)CMyArray operator-(CMyArray& B); /
47、寫出矩陣減法運(yùn)算符重載的 實(shí)現(xiàn);CMyArray:CMyArray(int m,int n)raw=m; col=n;data=new longraw*col;for(int i=0;ivm;i+)for(int j=O;jn;j+)*(data+i*col+j)=rand();力寫出矩陣加法運(yùn)算符重載的實(shí)現(xiàn)CMyArray CMyArray: :operator + (CMyArray& b)力寫出矩陣減法運(yùn)算符重載的實(shí)現(xiàn)CMyArray CMyArray:operator-(CMyArray& b) 2 依據(jù)下列關(guān)于復(fù)數(shù)類的描述,寫出-、/、=. !二等操作符重載的實(shí)現(xiàn)。class CComplexprivate:僅供學(xué)習(xí)與交流.如有侵權(quán)請聯(lián)系網(wǎng)站刪除謝謝25精品資料int real
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年皮膚專用型潔膚液行業(yè)深度研究分析報(bào)告
- 2025年皮卡車租賃合作協(xié)議書(標(biāo)準(zhǔn)版)3篇
- 2025年烤面包機(jī)項(xiàng)目風(fēng)險(xiǎn)可行性方案
- 二零二五年度消防演練策劃與組織實(shí)施協(xié)議4篇
- 2025年CJ北川倍力虎鉗項(xiàng)目投資可行性研究分析報(bào)告
- 二零二五年度牙科診所醫(yī)療廢物處理設(shè)施改造升級合同4篇
- 二零二五年度塑料編織袋行業(yè)節(jié)能減排技術(shù)研發(fā)合同
- 二零二五年度體育場館承包經(jīng)營合同模板4篇
- 2024版石灰石買賣合同可持續(xù)發(fā)展條款
- 2025年度古樂器展覽展示與贊助合作合同
- 電纜擠塑操作手冊
- 浙江寧波鄞州區(qū)市級名校2025屆中考生物全真模擬試卷含解析
- IATF16949基礎(chǔ)知識培訓(xùn)教材
- 【MOOC】大學(xué)生創(chuàng)新創(chuàng)業(yè)知能訓(xùn)練與指導(dǎo)-西北農(nóng)林科技大學(xué) 中國大學(xué)慕課MOOC答案
- 勞務(wù)派遣公司員工考核方案
- 基礎(chǔ)生態(tài)學(xué)-7種內(nèi)種間關(guān)系
- 2024年光伏農(nóng)田出租合同范本
- 《阻燃材料與技術(shù)》課件 第3講 阻燃基本理論
- 2024-2030年中國黃鱔市市場供需現(xiàn)狀與營銷渠道分析報(bào)告
- 新人教版九年級化學(xué)第三單元復(fù)習(xí)課件
- 江蘇省南京鼓樓區(qū)2024年中考聯(lián)考英語試題含答案
評論
0/150
提交評論