下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C+ 習(xí)題參考答案第 1 章 面向?qū)ο蟪绦蛟O(shè)計(jì)概論一、 名詞解釋抽象封裝消息【問(wèn)題解答】面向?qū)ο蠓椒ㄖ械某橄笫侵笇?duì)具體問(wèn)題(對(duì)象)進(jìn)行概括,抽出一類對(duì)象的公共性質(zhì)并加以描述的過(guò)程。面向?qū)ο蠓椒ㄖ械姆庋b就是把抽象出來(lái)的對(duì)象的屬性和行為結(jié)合成一個(gè)獨(dú)立的單位,并盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié)。消息是面向?qū)ο蟪绦蛟O(shè)計(jì)用來(lái)描述對(duì)象之間通信的機(jī)制。一個(gè)消息就是一個(gè)對(duì)象要求另一個(gè)對(duì)象實(shí)施某種操作的一個(gè)請(qǐng)求。二、填空題( 1 ) 目前有面向過(guò)程的結(jié)構(gòu)化程序設(shè)計(jì)方法和面向?qū)ο蟮某绦蛟O(shè)計(jì)方法兩種重要的程序設(shè)計(jì)方法。(2 ) 結(jié)構(gòu)化程序設(shè)計(jì)方法中的模塊由順序、選擇和循環(huán) 3 種基本結(jié)構(gòu)組成。( 3 ) 在結(jié)構(gòu)化程序設(shè)計(jì)方
2、法中,程序可表示為程序 = 數(shù)據(jù)結(jié)構(gòu) + 算法; 而面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,程序可表示為程序=對(duì)象 +消息。(4 ) 結(jié)構(gòu)化程序設(shè)計(jì)方法中的基本模塊是過(guò)程; 而面向?qū)ο蟪绦蛟O(shè)計(jì)方法中的基本模塊是類。( 5 ) 面向?qū)ο蟪绦蛟O(shè)計(jì)方法具有抽象性、封裝性、繼承性和多態(tài)性等特點(diǎn)。三、 選擇題(至少選一個(gè),可以多選)(1 ) 面向?qū)ο蟪绦蛟O(shè)計(jì)著重于(B)的設(shè)計(jì)。A. 對(duì)象B.類C.算法D.數(shù)據(jù)-WORD格式 - 可編輯 -( 2 ) 面向?qū)ο蟪绦蛟O(shè)計(jì)中,把對(duì)象的屬性和行為組織在同一個(gè)模塊內(nèi)的機(jī)制叫做( C )。A. 抽象B.繼承C.封裝D.多態(tài)(3 ) 在面向?qū)ο蟪绦蛟O(shè)計(jì)中,類通過(guò)(D)與外界發(fā)生關(guān)系。
3、A.對(duì)象B.類C.消息D.接口( 4 ) 面向?qū)ο蟪绦蛟O(shè)計(jì)中,對(duì)象與對(duì)象之間的通信機(jī)制是( C )。A.對(duì)象B.類C.消息D.接口( 5 ) 關(guān)于 C+ 與 C 語(yǔ)言的關(guān)系的描述中, ( D )是錯(cuò)誤的。A. C 語(yǔ)言是 C+ 的一個(gè)子集B. C 語(yǔ)言與 C+ 是兼容的C. C+ 對(duì) C 語(yǔ)言進(jìn)行了一些改進(jìn)D. C+ 和 C 語(yǔ)言都是面向?qū)ο蟮摹窘Y(jié)果分析】C 語(yǔ)言是面向過(guò)程的。 C+ 語(yǔ)言是一種經(jīng)過(guò)改進(jìn)的更為優(yōu)化的 C 語(yǔ)言,是一種混合型語(yǔ)言,既面向過(guò)程也面向?qū)ο?。? ) 面向?qū)ο蟮某绦蛟O(shè)計(jì)將數(shù)據(jù)結(jié)構(gòu)與(A)放在一起,作為一個(gè)相互依存、不可分割的整體來(lái)處理。A. 算法B.信息C. 數(shù)據(jù)隱藏D
4、.數(shù)據(jù)抽象(7 ) 下面(A)不是面向?qū)ο笙到y(tǒng)所包含的要素。A. 重載B.對(duì)象C. 類D.繼承【結(jié)果分析】面向?qū)ο?=對(duì)象 +類 +繼承 +消息 +多態(tài)(8 ) 下面說(shuō)法正確的是(BC)。A. 將數(shù)據(jù)結(jié)構(gòu)和算法置于同一個(gè)函數(shù)內(nèi),即為數(shù)據(jù)封裝-WORD格式 - 可編輯 -B. 一個(gè)類通過(guò)繼承可以獲得另一個(gè)類的特性C. 面向?qū)ο笠蟪绦騿T集中于事物的本質(zhì)特征,用抽象的觀點(diǎn)看待程序D. 同一消息為不同的對(duì)象接受時(shí),產(chǎn)生的行為是一樣的,這稱為一致性【結(jié)果分析】面向?qū)ο蟪绦蛟O(shè)計(jì)方法具有抽象性、封裝性、繼承性和多態(tài)性等特點(diǎn)。將數(shù)據(jù)結(jié)構(gòu)和算法置于同一個(gè)類內(nèi),即為數(shù)據(jù)封裝。同一消息為不同的對(duì)象接受時(shí),產(chǎn)生的行
5、為可能是不一樣的,這稱為多態(tài)性。(9 ) 下面說(shuō)法正確的是(AD)。A. 對(duì)象是計(jì)算機(jī)內(nèi)存中的一塊區(qū)域,它可以存放代碼和數(shù)據(jù)B. 對(duì)象實(shí)際是功能相對(duì)獨(dú)立的一段程序C. 各個(gè)對(duì)象間的數(shù)據(jù)可以共享是對(duì)象的一大優(yōu)點(diǎn)D. 在面向?qū)ο蟮某绦蛑校瑢?duì)象之間只能通過(guò)消息相互通信【結(jié)果分析】對(duì)象是計(jì)算機(jī)內(nèi)存中的一塊區(qū)域。 在對(duì)象中, 不但存有數(shù)據(jù),而且存有代碼,使得每個(gè)對(duì)象在功能上相互之間保持相對(duì)獨(dú)立。對(duì)象之間存在各種聯(lián)系,但它們之間只能通過(guò)消息進(jìn)行通信。四、判斷題(1 ) 在高級(jí)程序設(shè)計(jì)語(yǔ)言中,一般用類來(lái)實(shí)現(xiàn)對(duì)象,類是具有相同屬性和行為的一組對(duì)象的集合,它是創(chuàng)建對(duì)象的模板。()( 2 ) C+ 語(yǔ)言只支持面向
6、對(duì)象技術(shù)的抽象性、封裝性、繼承性等特性,而不支持多態(tài)性。( × )【結(jié)果分析】-WORD格式 - 可編輯 -C+ 語(yǔ)言不僅支持面向?qū)ο蠹夹g(shù)的抽象性、封裝性、繼承性等特性,而且支持多態(tài)性。( 3 ) 面向?qū)ο蟪绦蛟O(shè)計(jì)中的消息應(yīng)該包含“如何做”的信息。(×)【結(jié)果分析】消息是面向?qū)ο蟪绦蛟O(shè)計(jì)用來(lái)描述對(duì)象之間通信的機(jī)制。向?qū)ο蟆鞍l(fā)送消息”只需告訴對(duì)象做什么,對(duì)象根據(jù)這個(gè)消息決定如何做。(4 ) 一個(gè)消息只能產(chǎn)生特定的響應(yīng)效果。(× )【結(jié)果分析】當(dāng)一個(gè)對(duì)象發(fā)出消息時(shí),由于接收對(duì)象的類型可能不同,所以,它們可能做出不同的反應(yīng)。這樣,一個(gè)消息可以產(chǎn)生不同的響應(yīng)效果,這種現(xiàn)象
7、叫做多態(tài)。( 5 ) 類的設(shè)計(jì)和類的繼承機(jī)制實(shí)現(xiàn)了軟件模塊的可重用性。()( 6 ) C+ 語(yǔ)言和 Java 語(yǔ)言均不是一個(gè)純正的面向?qū)ο蟮某绦蛟O(shè)計(jì)的語(yǔ)言。( × )【結(jié)果分析】Java 語(yǔ)言是一個(gè)純正的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。( 7 ) 學(xué)習(xí) C+ 語(yǔ)言是學(xué)習(xí)面向?qū)ο蟮某绦蛟O(shè)計(jì)方法的唯一途徑。( × )【結(jié)果分析】程序設(shè)計(jì)方法是獨(dú)立于具體程序設(shè)計(jì)語(yǔ)言的一種技術(shù),學(xué)習(xí) C+ 語(yǔ)言是學(xué)習(xí)面向?qū)ο蟪绦蛟O(shè)計(jì)方法的重要途徑之一。(8 ) 在 C+ 語(yǔ)言中,類是支持?jǐn)?shù)據(jù)封裝的工具。( )五、 簡(jiǎn)答題( 1 )什么是結(jié)構(gòu)化程序設(shè)計(jì)方法?它有哪些優(yōu)點(diǎn)和缺點(diǎn)?【問(wèn)題解答】-WORD格式 -
8、 可編輯 -結(jié)構(gòu)化程序設(shè)計(jì)方法著眼于系統(tǒng)要實(shí)現(xiàn)的功能,從系統(tǒng)的輸入輸出出發(fā),分析系統(tǒng)要做哪些事情,進(jìn)而考慮如何做這些事情,自頂向下地對(duì)系統(tǒng)的功能進(jìn)行分解,來(lái)建立系統(tǒng)的功能結(jié)構(gòu)和相應(yīng)的程序模塊結(jié)構(gòu),有效地將一個(gè)較復(fù)雜的程序系統(tǒng)設(shè)計(jì)任務(wù)分解成許多易于控制和處理的子任務(wù),便于開(kāi)發(fā)和維護(hù)。隨著程序規(guī)模與復(fù)雜性的增長(zhǎng),這種面向過(guò)程的結(jié)構(gòu)化程序設(shè)計(jì)方法存在明顯的不足之處。首先是數(shù)據(jù)安全性問(wèn)題。由于數(shù)據(jù)被每個(gè)模塊所共用,因此是不安全的,一旦出錯(cuò),很難查明原因。其次是可維護(hù)性及可重用性差。它把數(shù)據(jù)結(jié)構(gòu)和算法分離為相互獨(dú)立的實(shí)體,一旦數(shù)據(jù)結(jié)構(gòu)需要改變時(shí),常常要涉及整個(gè)程序,修改工作量極大并容易產(chǎn)生新的錯(cuò)誤。每一
9、種相對(duì)于老問(wèn)題的新方法都要帶來(lái)額外的開(kāi)銷。另外,圖形用戶界面的應(yīng)用程序,很難用過(guò)程來(lái)描述和實(shí)現(xiàn),開(kāi)發(fā)和維護(hù)也都很困難。( 2 ) 什么是面向?qū)ο蟪绦蛟O(shè)計(jì)方法?它有哪些優(yōu)點(diǎn)?【問(wèn)題解答】面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中,將程序設(shè)計(jì)為一組相互協(xié)作的對(duì)象而不是一組相互協(xié)作的函數(shù)。在程序中,屬性用數(shù)據(jù)表示,用來(lái)描述對(duì)象靜態(tài)特征; 行為用程序代碼實(shí)現(xiàn),用來(lái)描述對(duì)象動(dòng)態(tài)特征??梢?jiàn),在面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中,對(duì)象是數(shù)據(jù)結(jié)構(gòu)和算法的封裝體。對(duì)象之間存在各種聯(lián)系,它們之間通過(guò)消息進(jìn)行通信。程序可表示為:程序 =對(duì)象 +消息在面向?qū)ο蟪绦蛟O(shè)計(jì)中應(yīng)著重于類的設(shè)計(jì)。類正是面向?qū)ο笳Z(yǔ)言的基本程序模塊,通過(guò)類的設(shè)計(jì)來(lái)完成實(shí)體的
10、建模任務(wù)。類通過(guò)一個(gè)簡(jiǎn)單的外部接口與外界發(fā)生關(guān)系。一個(gè)類-WORD格式 - 可編輯 -中的操作不會(huì)處理到另一個(gè)類中的數(shù)據(jù),這樣程序模塊的獨(dú)立性、數(shù)據(jù)的安全性就有了良好的保障。程序的執(zhí)行取決于事件發(fā)生的順序,由順序產(chǎn)生的消息來(lái)驅(qū)動(dòng)程序的執(zhí)行。不必預(yù)先確定消息產(chǎn)生的順序,更符合客觀世界的實(shí)際。并且面向?qū)ο蟪绦蛟O(shè)計(jì)方法提供了軟件重用、解決大問(wèn)題和復(fù)雜問(wèn)題的有效途徑,具有抽象性、封裝性、繼承性和多態(tài)性等特點(diǎn)。( 3 )結(jié)構(gòu)化程序設(shè)計(jì)方法與面向?qū)ο蟪绦蛟O(shè)計(jì)方法在對(duì)待數(shù)據(jù)結(jié)構(gòu)和算法關(guān)系上有 什么不同?【問(wèn)題解答】結(jié)構(gòu)化程序設(shè)計(jì)方法中,把數(shù)據(jù)結(jié)構(gòu)和算法分離為相互獨(dú)立的實(shí)體; 而在面向?qū)ο蟪绦蛟O(shè)計(jì)中,數(shù)據(jù)結(jié)構(gòu)
11、和算法封裝在一起,結(jié)合成一個(gè)獨(dú)立的單位,即對(duì)象,并盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié)。對(duì)象的私有屬性只能由這個(gè)對(duì)象的行為來(lái)讀取和修改,與外部的聯(lián)系通過(guò)公有行為充當(dāng)外部接口。第2章 從C到C+一、名詞解釋引用內(nèi)聯(lián)函數(shù)重載函數(shù)【問(wèn)題解答】所謂引用就是給對(duì)象取一個(gè)別名,使用該別名可以存取該對(duì)象。換句話說(shuō)是使新對(duì)象和原對(duì)象共用一個(gè)地址。內(nèi)聯(lián)函數(shù)是使用inline關(guān)鍵字聲明的函數(shù)。重載函數(shù)指在同一個(gè)作用域內(nèi)名字相同而參數(shù)不同的函數(shù)。重載函數(shù)通常用來(lái)對(duì)具有相似行為而數(shù)據(jù)類型或數(shù)據(jù)個(gè)數(shù)不同的操作提供個(gè)通用的名稱。二、 填空題-WORD格式 - 可編輯 -( 1 ) 一般情況下,用 C+ 語(yǔ)言編寫(xiě)的程序是由函數(shù)加上類組
12、成的。(2 )C+ 有兩種注釋符號(hào),一種是/,另一種是/*/。( 3 ) 使用 C+ 風(fēng)格的輸入輸出,在程序中必須包含頭文件“ iostream ”。(4 ) cin 是預(yù)定義的標(biāo)準(zhǔn)輸入流對(duì)象,>> 是輸入操作符,也稱提取運(yùn)算符。(5 ) cout 是預(yù)定義的標(biāo)準(zhǔn)輸出流對(duì)象, << 是輸出操作符,也稱插入運(yùn)算符。(6 ) 指針的值是它所指向那個(gè)對(duì)象的地址值。指針的類型是它所指向?qū)ο蟮念愋?。指針的?nèi)容便是它所指向?qū)ο蟮闹?。?7 ) C+ 使用運(yùn)算符 & 來(lái)定義一個(gè)引用, 對(duì)引用的存取都是對(duì)它所引用的對(duì)象的存取。( 8 ) 當(dāng)一個(gè)函數(shù)調(diào)用出現(xiàn)在函數(shù)定義之前時(shí),必須
13、先用函數(shù)原型對(duì)函數(shù)進(jìn)行聲明。( 9 ) C+ 有值傳遞和引用傳遞兩種參數(shù)傳遞機(jī)制。( 10 ) 使用關(guān)鍵字 inline 聲明的函數(shù)稱為內(nèi)聯(lián)函數(shù)。( 11 ) 運(yùn)算符 new 用于進(jìn)行動(dòng)態(tài)內(nèi)存分配, 運(yùn)算符 delete用于釋放動(dòng)態(tài)分配的內(nèi)存。(12 )下面程序的輸出結(jié)果為:x=10 , y=10x=100 ,y=100#include<iostream>using namespace std;int main()-WORD格式 - 可編輯 -int x=10, &y=x;cout<<"x="<<x<<",
14、y="<<y<<endl;int *p=&y;*p=100;cout<<"x="<<x<<", y="<<y<<endl;return 0;三、 選擇題(至少選一個(gè),可以多選)(1 )在整型指針變量 p2 、p3的定義中,錯(cuò)誤的是( A )。A. int p1,*p2 , p3;B. int*p2, p1 , *p3;C. int p1,*p2=&p1,*p3;D. int*p2 ,p1 ,*p3=&p1;【結(jié)果分析】指針定義的具體格式如
15、下所示:<類型 > *< 指針名 1> , *< 指針名 2> , ;(2 ) 若有定義“double xx=3.14 *pp=&xx,; ”,則 *pp等價(jià)于(D )。A. &xxB. *xxC. 3.14D. xx【結(jié)果分析】pp 指向 xx 所在的內(nèi)存單元,這樣 *pp 和 xx 等價(jià)。(3 ) 下面對(duì)引用的描述中(C)是錯(cuò)誤的。A. 引用是某個(gè)變量或?qū)ο蟮膭e名B. 建立引用時(shí),要對(duì)它初始化C. 對(duì)引用初始化可以使用任意類型的變量D. 引用與其代表的對(duì)象具有相同的地址【結(jié)果分析】所謂引用就是給對(duì)象取一個(gè)別名,使用該別名可以存取該對(duì)象,所
16、以對(duì)引用初始化必須使用同類型的變量。-WORD格式 - 可編輯 -(4 ) 函數(shù)沒(méi)有返回值的時(shí)候,應(yīng)該選擇(A)的函數(shù)類型。A. voidB. intC.不確定D. float(5 ) 在函數(shù)的定義格式中,下面各組成部分中, ( D )是可以省略的。A. 函數(shù)名B.函數(shù)體C. 返回值類型D.函數(shù)參數(shù)【結(jié)果分析】函數(shù)的定義可以缺省形式參數(shù),此時(shí)稱為無(wú)參函數(shù)。(6 ) 對(duì)重載的函數(shù)來(lái)說(shuō),下面敘述不正確的是(D)。A. 參數(shù)的類型不同B. 參數(shù)的順序不同C. 參數(shù)的個(gè)數(shù)不同D. 參數(shù)的個(gè)數(shù)、類型、順序都相同,但函數(shù)的返回值類型不同【結(jié)果分析】對(duì)重載的函數(shù)來(lái)說(shuō),編譯系統(tǒng)將根據(jù)函數(shù)參數(shù)的類型和個(gè)數(shù)來(lái)判斷
17、使用哪一個(gè)函數(shù),所以重載函數(shù)參數(shù)的個(gè)數(shù)、類型、順序不能都相同。(7 ) 下列有關(guān)設(shè)置函數(shù)參數(shù)默認(rèn)值的描述中,( D )是正確的。A. 對(duì)設(shè)置函數(shù)參數(shù)默認(rèn)值的順序沒(méi)有任何規(guī)定B. 函數(shù)具有一個(gè)參數(shù)時(shí)不能設(shè)置默認(rèn)值C. 默認(rèn)參數(shù)要設(shè)置在函數(shù)的原型中,而不能設(shè)置在函數(shù)的定義語(yǔ)句中D. 設(shè)置默認(rèn)參數(shù)可使用表達(dá)式,但表達(dá)式中不可用局部變量【結(jié)果分析】在 C+ 中,在函數(shù)原型中可以為一個(gè)或多個(gè)參數(shù)指定默認(rèn)值。對(duì)函數(shù)參數(shù)設(shè)置默認(rèn)值要注意以下幾點(diǎn)。-WORD格式 - 可編輯 -若沒(méi)有聲明函數(shù)原型,參數(shù)的默認(rèn)值可在函數(shù)定義的頭部進(jìn)行設(shè)置,否則必須在函數(shù)原型中進(jìn)行設(shè)置。在一個(gè)指定了默認(rèn)值的參數(shù)右邊不能出現(xiàn)沒(méi)有指定
18、默認(rèn)值的參數(shù)。設(shè)置默認(rèn)參數(shù)可使用表達(dá)式,但表達(dá)式中不可用局部變量。(8 ) 下面說(shuō)法正確的是(C)。A. 所有的函數(shù)都可以說(shuō)明為內(nèi)聯(lián)函數(shù)B. 具有循環(huán)語(yǔ)句、 switch 語(yǔ)句的函數(shù)不能說(shuō)明為內(nèi)聯(lián)函數(shù)C. 使用內(nèi)聯(lián)函數(shù),可以加快程序執(zhí)行的速度,但會(huì)增加程序代碼的大小D. 使用內(nèi)聯(lián)函數(shù),可以減小程序代碼大小,但使程序執(zhí)行的速度減慢【結(jié)果分析】?jī)?nèi)聯(lián)函數(shù)主要是解決程序的運(yùn)行效率問(wèn)題。在程序編譯時(shí),編譯系統(tǒng)將程序中出現(xiàn)內(nèi)聯(lián)函數(shù)調(diào)用的地方用函數(shù)體進(jìn)行替換,進(jìn)而減少了程序運(yùn)行的時(shí)間,但會(huì)增加程序代碼的大小。它是以空間換取時(shí)間,因此內(nèi)聯(lián)函數(shù)適用于功能不太復(fù)雜,但要求被頻繁調(diào)用的函數(shù)。( 9 ) 一個(gè)函數(shù)功能
19、不太復(fù)雜,但要求被頻繁調(diào)用,應(yīng)選用( A )。A. 內(nèi)聯(lián)函數(shù)B.重載函數(shù)C. 遞歸函數(shù)D.嵌套函數(shù)(10 )C+ 對(duì) C 語(yǔ)言做了很多改進(jìn),下列描述中使得C語(yǔ)言發(fā)生了質(zhì)變, 即從面向過(guò)程變成面向?qū)ο蟮氖牵―)。A. 增加了一些新的運(yùn)算符B. 允許函數(shù)重載,并允許設(shè)置默認(rèn)參數(shù)C. 規(guī)定函數(shù)說(shuō)明必須用原型D. 引進(jìn)了類和對(duì)象的概念-WORD格式 - 可編輯 -【結(jié)果分析】面向?qū)ο?=對(duì)象 +類 +繼承 +消息 +多態(tài)四、 判斷題( 1 ) C+ 程序中,不得使用沒(méi)有定義或說(shuō)明的變量。 ( )( 2 ) 使用 const 說(shuō)明常量時(shí), 可以不必指出類型。 ( × )【結(jié)果分析】如果用 co
20、nst 定義的是一個(gè)整型常量, 則類型說(shuō)明符 int 可以省略。(3 ) 引用被創(chuàng)建時(shí)可以用任意變量進(jìn)行初始化。(× )【結(jié)果分析】對(duì)引用初始化必須使用同類型的變量。(4 ) 一個(gè)返回引用的調(diào)用函數(shù)可以作為左值。( )(5 ) 函數(shù)可以沒(méi)有參數(shù),也可以沒(méi)有返回值。( )(6 ) 沒(méi)有參數(shù)的兩個(gè)函數(shù)是不能重載的。( )( 7 ) 函數(shù)可設(shè)置默認(rèn)參數(shù),但不允許將一個(gè)函數(shù)的所有參數(shù)都設(shè)置為默認(rèn)參數(shù)。( × )【結(jié)果分析】函數(shù)可設(shè)置默認(rèn)參數(shù),且允許將一個(gè)函數(shù)的所有參數(shù)都設(shè)置為默認(rèn)參數(shù)。( 8 )運(yùn)算符 new 分配的空間由運(yùn)算符 delete 釋放。( )五、 簡(jiǎn)答題( 1 ) 名
21、字空間的用途是什么?【問(wèn)題解答】名字空間用來(lái)防止命名的沖突。( 2 ) 引用有何用處?【問(wèn)題解答】除了獨(dú)立引用外,在 C+ 程序中, 引用的主要用途是用作函數(shù)參數(shù)和函數(shù)的返回值。( 3 ) 比較值調(diào)用和引用調(diào)用的相同點(diǎn)與不同點(diǎn)。-WORD格式 - 可編輯 -【問(wèn)題解答】在值調(diào)用機(jī)制中,作為實(shí)參的表達(dá)式的值被復(fù)制到由對(duì)應(yīng)的形參名所標(biāo)識(shí)的一個(gè)對(duì)象中,作為形參的初始值。函數(shù)體對(duì)形參的訪問(wèn)、修改都是在這個(gè)標(biāo)識(shí)對(duì)象上操作的,與實(shí)參無(wú)關(guān),即數(shù)據(jù)的傳遞是單向的。使用引用作函數(shù)的形參時(shí),調(diào)用函數(shù)的實(shí)參要用變量名。實(shí)參傳遞給形參,相當(dāng)于在被調(diào)用函數(shù)中使用了實(shí)參的別名。于是,在被調(diào)用函數(shù)中對(duì)形參的操作實(shí)質(zhì)是對(duì)實(shí)參
22、的直接操作,即數(shù)據(jù)的傳遞是雙向的。( 4 ) 內(nèi)聯(lián)函數(shù)有什么作用?它有哪些特點(diǎn)?【問(wèn)題解答】?jī)?nèi)聯(lián)函數(shù)是使用 inline 關(guān)鍵字聲明的函數(shù)。 在程序編譯時(shí),編譯系統(tǒng)將程序中出現(xiàn)內(nèi)聯(lián)函數(shù)調(diào)用的地方用函數(shù)體進(jìn)行替換,進(jìn)而減少了程序運(yùn)行的時(shí)間。使用內(nèi)聯(lián)函數(shù)應(yīng)注意以下幾點(diǎn)。遞歸函數(shù)不能定義為內(nèi)聯(lián)函數(shù)。內(nèi)聯(lián)函數(shù)一般適合于不含有 switch 和 while 等復(fù)雜的結(jié)構(gòu)且只有 15 條語(yǔ)句的小函數(shù), 否則編譯系統(tǒng)將該函數(shù)視為普通函數(shù)。內(nèi)聯(lián)函數(shù)只能先定義后使用,否則編譯系統(tǒng)也將該函數(shù)視為普通函數(shù)。對(duì)內(nèi)聯(lián)函數(shù)也不能進(jìn)行異常接口聲明。(5 ) 函數(shù)原型中的參數(shù)名與函數(shù)定義中的參數(shù)名以及函數(shù)調(diào)用中的參數(shù)名必須一
23、致嗎?【問(wèn)題解答】不必一致。所有的參數(shù)是根據(jù)位置和類型而不是名字來(lái)區(qū)分的。( 6 ) 重載函數(shù)時(shí)通過(guò)什么來(lái)區(qū)分?【問(wèn)題解答】-WORD格式 - 可編輯 -編譯系統(tǒng)將根據(jù)函數(shù)參數(shù)的類型和個(gè)數(shù)來(lái)判斷使用哪一個(gè)函數(shù)。六、程序分析題(寫(xiě)出程序的輸出結(jié)果,并分析結(jié)果)#include<iostream>using namespace std;int main()int num=50;int& ref=num;ref=ref+10;cout<<"num="<<num<<endl;num=num+40;cout<<&qu
24、ot;ref="<<ref<<endl;return 0;【輸出結(jié)果】num=60ref=100【問(wèn)題分析】本題主要考查引用的含義?!窘Y(jié)果分析】程序首先定義一個(gè)int類型的對(duì)象num ,并給它賦初始值 50 。然后又定義了一個(gè)int 類型的引用ref ,并將它和 num相聯(lián)系。這樣,無(wú)論是對(duì)num還是對(duì) ref 進(jìn)行操作,實(shí)際上都是對(duì)那個(gè)一開(kāi)始放著50 的物理單元的內(nèi)容進(jìn)行操作。七、程序設(shè)計(jì)題寫(xiě)出一個(gè)完整的C+ 程序,使用系統(tǒng)函數(shù)pow ( x ,y )計(jì)算 xy 的值,注意包含頭文件 cmath ?!締?wèn)題分析】本題主要考查簡(jiǎn)單的輸入輸出和標(biāo)準(zhǔn)庫(kù)函數(shù)的調(diào)用方法
25、。-WORD格式 - 可編輯 -【解題思路】 由于要用到系統(tǒng)函數(shù)pow ( x , y ),所以要包含頭文件cmath 。 要計(jì)算 xy 的值,首先必須知道x 和 y 的值。為了程序的通用性,最好通過(guò)交互的方式輸入x 和 y 的值?!緟⒖汲绦颉? xt2_1.cpp#include<iostream>#include<cmath>using namespace std;int main()float x , y;cout<<"please input 2 floats to x, y:"cin>>x>>y;floa
26、t z=pow( x , y ) ;cout<<"pow("<<x<<" , "<<y<<" ) ="<<z<<endl;return 0;【輸出結(jié)果】please input 2 floats to x, y:3.1 2pow (3.1 , 2 ) =9.61-WORD格式 - 可編輯 -第3章類與對(duì)象一、填空題(1 ) 類定義中關(guān)鍵字private 、public和 protected以后的成員的訪問(wèn)權(quán)限分別是私有、公有和保護(hù)。如果沒(méi)有使用關(guān)鍵字,
27、則所有成員默認(rèn)定義為private權(quán)限。具有public訪問(wèn)權(quán)限的數(shù)據(jù)成員才能被不屬于該類的函數(shù)所直接訪問(wèn)。(2 ) 定義成員函數(shù)時(shí),運(yùn)算符“”是作用域運(yùn)算符,“ MyClass ”用于表明其后的成員函數(shù)是在“MyClass類”中說(shuō)明的。( 3 ) 在程序運(yùn)行時(shí),通過(guò)為對(duì)象分配內(nèi)存來(lái)創(chuàng)建對(duì)象。在創(chuàng)建對(duì)象時(shí),使用類作為樣板,故稱對(duì)象為類的實(shí)例。(4 ) 假定 Dc 是一個(gè)類,則執(zhí)行“Dc a10,b( 2 )”語(yǔ)句時(shí),系統(tǒng)自動(dòng)調(diào)用該類構(gòu)造函數(shù)的次數(shù)為11 。【結(jié)果分析】創(chuàng)建 10 個(gè)數(shù)組元素需調(diào)用構(gòu)造函數(shù)10 次,創(chuàng)建對(duì)象b需調(diào)用構(gòu)造函數(shù)1 次,所以系統(tǒng)自動(dòng)調(diào)用該類構(gòu)造函數(shù)的總次數(shù)為 11 。(
28、5 ) 對(duì)于任意一個(gè)類,析構(gòu)函數(shù)的個(gè)數(shù)最多為1 個(gè)。(6 ) delete 運(yùn)算符通常用于實(shí)現(xiàn)釋放該類對(duì)象中指針成員所指向的動(dòng)態(tài)存儲(chǔ)空間的任務(wù)。(7 ) C+ 程序的內(nèi)存格局通常分為 4 個(gè)區(qū): 數(shù)據(jù)區(qū)、代碼區(qū)、棧區(qū)和堆區(qū)。( 8 ) 數(shù)據(jù)定義為全局變量,破壞了數(shù)據(jù)的 封裝性; 較好的解決辦法是將所要共享的數(shù)據(jù)定義為類的靜態(tài)成員。( 9 ) 靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)可由 任意訪問(wèn)權(quán)限許可的函數(shù)訪問(wèn)。( 10 ) 友元函數(shù)和友元類統(tǒng)稱為友元。-WORD格式 - 可編輯 -( 11 ) 友元的正確使用能提高程序的效率,但破壞了類的封裝性和數(shù)據(jù)的隱蔽性。(12 )若需要把一個(gè)類 A 定義為一個(gè)類
29、B 的友元類,則應(yīng)在類 B 的定義中加入一條語(yǔ)句:friend class A ;。二、 選擇題(至少選一個(gè),可以多選)(1 ) 以下不屬于類訪問(wèn)權(quán)限的是(B )。A. publicB. staticC. protectedD. private【結(jié)果分析】類的訪問(wèn)權(quán)限有 public、protected和 private 。(2 ) 有關(guān)類的說(shuō)法不正確的是(BC )。A. 類是一種用戶自定義的數(shù)據(jù)類型B. 只有類的成員函數(shù)才能訪問(wèn)類的私有數(shù)據(jù)成員C. 在類中,如不做權(quán)限說(shuō)明,所有的數(shù)據(jù)成員都是公有的D. 在類中,如不做權(quán)限說(shuō)明,所有的數(shù)據(jù)成員都是私有的【結(jié)果分析】類是一種用戶自定義的數(shù)據(jù)類型,
30、類中成員均具有一種訪問(wèn)權(quán)限。關(guān)鍵字 public 、protected 和 private 以后的成員的訪問(wèn)權(quán)限分別是公有、保護(hù)和私有的,所有成員默認(rèn)定義為 private 的。私有成員是被隱藏的數(shù)據(jù),只有該類的成員函數(shù)或友元函數(shù)才可以訪問(wèn)它。( 3 ) 在類定義的外部,可以被任意函數(shù)訪問(wèn)的成員有( C )。A. 所有類成員B. private或 protected的類成員C. public的類成員D. public或 private的類成員【結(jié)果分析】類是一種用戶自定義的數(shù)據(jù)類型,類中成員均具有一種訪問(wèn)權(quán)限。公有成員定義了類的外部接口。私有成員是被隱藏的數(shù)據(jù),只有該類的成員函數(shù)或友元函數(shù)才可
31、以引用它。-WORD格式 - 可編輯 -保護(hù)成員具有公有成員和私有成員的雙重性質(zhì),可以被該類或派生類的成員函數(shù)或友元函數(shù)引用??梢?jiàn)在類定義的外部,可以被任意函數(shù)訪問(wèn)的成員是public的類成員。(4 ) 關(guān)于類和對(duì)象的說(shuō)法(C )是錯(cuò)誤的。A. 對(duì)象是類的一個(gè)實(shí)例B. 任何一個(gè)對(duì)象只能屬于一個(gè)具體的類C. 一個(gè)類只能有一個(gè)對(duì)象D. 類與對(duì)象的關(guān)系和數(shù)據(jù)類型與變量的關(guān)系相似【結(jié)果分析】C+ 語(yǔ)言的類就是一種用戶自己定義的數(shù)據(jù)類型,類和對(duì)象的關(guān)系就相當(dāng)于基本數(shù)據(jù)類型與它的變量的關(guān)系,所以任何一個(gè)對(duì)象只能屬于一個(gè)具體的類,但一個(gè)類可以有多個(gè)對(duì)象。(5 ) 設(shè) MClass 是一個(gè)類, dd 是它的一
32、個(gè)對(duì)象, pp 是指向 dd 的指針, cc 是 dd 的引用,則對(duì)成員的訪問(wèn),對(duì)象 dd可以通過(guò)( B )進(jìn)行,指針 pp 可以通過(guò)( D )進(jìn)行,引用 cc 可以通過(guò)( B )進(jìn)行。A.B.C.&D.->(6 ) 關(guān)于成員函數(shù)的說(shuō)法中不正確的是(C)。A. 成員函數(shù)可以無(wú)返回值B. 成員函數(shù)可以重載C. 成員函數(shù)一定是內(nèi)聯(lián)函數(shù)D. 成員函數(shù)可以設(shè)定參數(shù)的默認(rèn)值【結(jié)果分析】與普通函數(shù)不同的是,成員函數(shù)是屬于某個(gè)類的。成員函數(shù)的實(shí)現(xiàn),可以放在類體內(nèi),也可以放在類體外。在類體外實(shí)現(xiàn)的成員函數(shù)不再是內(nèi)聯(lián)函數(shù)。(7 ) 下面對(duì)構(gòu)造函數(shù)的不正確描述是(B)。-WORD格式 - 可編輯 -
33、A. 系統(tǒng)可以提供默認(rèn)的構(gòu)造函數(shù)B. 構(gòu)造函數(shù)可以有參數(shù),所以也可以有返回值C. 構(gòu)造函數(shù)可以重載D. 構(gòu)造函數(shù)可以設(shè)置默認(rèn)參數(shù)【結(jié)果分析】構(gòu)造函數(shù)不能指定返回類型,即使是 void 類型也不可以,當(dāng)然不可能有返回值。(8 )假定 A 是一個(gè)類,那么執(zhí)行語(yǔ)句“A ba(,3),*p ;”調(diào)用了( B ) 次構(gòu)造函數(shù)。A. 1B. 2C. 3D. 4【結(jié)果分析】聲明指針是不會(huì)調(diào)用構(gòu)造函數(shù)的。(9 )下面對(duì)析構(gòu)函數(shù)的正確描述是(AC )。A. 系統(tǒng)可以提供默認(rèn)的析構(gòu)函數(shù)B. 析構(gòu)函數(shù)必須由用戶定義C. 析構(gòu)函數(shù)沒(méi)有參數(shù)D. 析構(gòu)函數(shù)可以設(shè)置默認(rèn)參數(shù)【結(jié)果分析】析構(gòu)函數(shù)的作用是在對(duì)象消失時(shí)執(zhí)行一項(xiàng)清
34、理任務(wù)。如果一個(gè)類中沒(méi)有定義析構(gòu)函數(shù),系統(tǒng)將自動(dòng)生成一個(gè)默認(rèn)析構(gòu)函數(shù)。析構(gòu)函數(shù)沒(méi)有參數(shù),當(dāng)然不可能設(shè)置默認(rèn)參數(shù)。(10 ) 類的析構(gòu)函數(shù)是(D)時(shí)被調(diào)用的。A. 類創(chuàng)建B. 創(chuàng)建對(duì)象C. 引用對(duì)象D.釋放對(duì)象(11 ) 創(chuàng)建一個(gè)類的對(duì)象時(shí),系統(tǒng)自動(dòng)調(diào)用(B); 撤銷對(duì)象時(shí),系統(tǒng)自動(dòng)調(diào)用(C )。A. 成員函數(shù)B. 構(gòu)造函數(shù)C. 析構(gòu)函數(shù)D.復(fù)制構(gòu)造函數(shù)-WORD格式 - 可編輯 -(12 ) 通??截悩?gòu)造函數(shù)的參數(shù)是(C )。A. 某個(gè)對(duì)象名B.某個(gè)對(duì)象的成員名C. 某個(gè)對(duì)象的引用名D.某個(gè)對(duì)象的指針名(13 ) 關(guān)于 this指針的說(shuō)法正確的是(B )。A. this指針必須顯式說(shuō)明B. 當(dāng)
35、創(chuàng)建一個(gè)對(duì)象后, this指針就指向該對(duì)象C. 成員函數(shù)擁有this指針 D.靜態(tài)成員函數(shù)擁有this指針。【結(jié)果分析】this 指針是由C+ 編譯器自動(dòng)產(chǎn)生且較常用的一個(gè)隱含對(duì)象指針,它不能被顯式聲明。當(dāng)創(chuàng)建一個(gè)對(duì)象時(shí), this 指針就初始化指向該對(duì)象。但只有非靜態(tài)成員函數(shù)才擁有 this 指針,并通過(guò)該指針來(lái)處理對(duì)象。(14 ) 下列關(guān)于子對(duì)象的描述中,(B)是錯(cuò)誤的。A. 子對(duì)象是類的一種數(shù)據(jù)成員,它是另一個(gè)類的對(duì)象B. 子對(duì)象可以是自身類的對(duì)象C. 對(duì)子對(duì)象的初始化要包含在該類的構(gòu)造函數(shù)中D. 一個(gè)類中能含有多個(gè)子對(duì)象作其成員【結(jié)果分析】子對(duì)象不可以是自身類的對(duì)象。(15 ) 對(duì) n
36、ew 運(yùn)算符的下列描述中,(B )是錯(cuò)誤的。A. 它可以動(dòng)態(tài)創(chuàng)建對(duì)象和對(duì)象數(shù)組B. 用它創(chuàng)建對(duì)象數(shù)組時(shí)必須指定初始值C. 用它創(chuàng)建對(duì)象時(shí)要調(diào)用構(gòu)造函數(shù)D. 用它創(chuàng)建的對(duì)象數(shù)組可以使用運(yùn)算符 delete 來(lái)一次釋放【結(jié)果分析】使用運(yùn)算符 new 創(chuàng)建對(duì)象數(shù)組的格式如下:-WORD格式 - 可編輯 -new<類型說(shuō)明符 > < 算術(shù)表達(dá)式 >其中, < 算術(shù)表達(dá)式 >給出數(shù)組的大小, 后面不能再跟構(gòu)造函數(shù)參數(shù),所以用它創(chuàng)建對(duì)象數(shù)組時(shí)不能指定初始值。(16 ) 對(duì) delete 運(yùn)算符的下列描述中, ( D )是錯(cuò)誤的。 A. 用它可以釋放用 new 運(yùn)算符創(chuàng)建
37、的對(duì)象和對(duì)象數(shù)組B.用它釋放一個(gè)對(duì)象時(shí),它作用于一個(gè)new 所返回的指針C. 用它釋放一個(gè)對(duì)象數(shù)組時(shí),它作用的指針名前須加下標(biāo)運(yùn)算符D.用它可一次釋放用new 運(yùn)算符創(chuàng)建的多個(gè)對(duì)象【結(jié)果分析】用 delete一次只能釋放用new 創(chuàng)建的 1 個(gè)對(duì)象,但可釋放一個(gè)對(duì)象數(shù)組。(17 ) 關(guān)于靜態(tài)數(shù)據(jù)成員,下面敘述不正確的是(C )。A. 使用靜態(tài)數(shù)據(jù)成員,實(shí)際上是為了消除全局變量B. 可以使用“對(duì)象名 . 靜態(tài)成員”或者“類名靜態(tài)成員”來(lái)訪問(wèn)靜態(tài)數(shù)據(jù)成員C. 靜態(tài)數(shù)據(jù)成員只能在靜態(tài)成員函數(shù)中引用D. 所有對(duì)象的靜態(tài)數(shù)據(jù)成員占用同一內(nèi)存單元【結(jié)果分析】靜態(tài)數(shù)據(jù)成員可以在靜態(tài)成員函數(shù)中引用,也可以在非
38、靜態(tài)成員函數(shù)中引用。(18 ) 對(duì)靜態(tài)數(shù)據(jù)成員的不正確描述是(CD)。A. 靜態(tài)成員不屬于對(duì)象,是類的共享成員B. 靜態(tài)數(shù)據(jù)成員要在類外定義和初始化C. 調(diào)用靜態(tài)成員函數(shù)時(shí)要通過(guò)類或?qū)ο蠹せ?,所以靜態(tài)成員函數(shù)擁有 this 指針D. 只有靜態(tài)成員函數(shù)可以操作靜態(tài)數(shù)據(jù)成員【結(jié)果分析】-WORD格式 - 可編輯 -this 指針是一個(gè)局部量,局部于某個(gè)對(duì)象,而靜態(tài)成員函數(shù)是屬于整個(gè)類而不是某個(gè)對(duì)象, 它沒(méi)有 this 指針。靜態(tài)成員函數(shù)和非靜態(tài)成員函數(shù)均可操作靜態(tài)數(shù)據(jù)成員。( 19 ) 下面的選項(xiàng)中,靜態(tài)成員函數(shù)不能直接訪問(wèn)的是( D )。A. 靜態(tài)數(shù)據(jù)成員B.靜態(tài)成員函數(shù)C. 類以外的函數(shù)和數(shù)據(jù)
39、D.非靜態(tài)數(shù)據(jù)成員【結(jié)果分析】由于靜態(tài)成員函數(shù)沒(méi)有this 指針,它只能直接訪問(wèn)該類的靜態(tài)數(shù)據(jù)成員、靜態(tài)成員函數(shù)和類以外的函數(shù)和數(shù)據(jù),訪問(wèn)類中的非靜態(tài)數(shù)據(jù)成員必須通過(guò)參數(shù)傳遞方式得到對(duì)象名,然后通過(guò)對(duì)象名來(lái)訪問(wèn)。(20 ) 在類的定義中,引入友元的原因是(A )。A. 提高效率B.深化使用類的封裝性C. 提高程序的可讀性D.提高數(shù)據(jù)的隱蔽性【結(jié)果分析】友元的作用主要是為了提高效率和方便編程,但友元破壞了類的封裝性和隱蔽性,使用時(shí)要權(quán)衡利弊。(21 )友元類的聲明方法是(A )。A. friend class<類名 > ;B. youyuanclass< 類名 > ;C.
40、 class friend<類名 >;D. friendsclass< 類名 > ;(22 )下面對(duì)友元的錯(cuò)誤描述是(D )。A. 關(guān)鍵字 friend用于聲明友元B. 一個(gè)類中的成員函數(shù)可以是另一個(gè)類的友元-WORD格式 - 可編輯 -C. 友元函數(shù)訪問(wèn)對(duì)象的成員不受訪問(wèn)特性影響D. 友元函數(shù)通過(guò) this 指針訪問(wèn)對(duì)象成員【結(jié)果分析】友元函數(shù)是一個(gè)放在類中的普通函數(shù),它沒(méi)有this 指針。(23 ) 下面選項(xiàng)中,(C )不是類的成員函數(shù)。A. 構(gòu)造函數(shù)B. 析構(gòu)函數(shù)C. 友元函數(shù)D.拷貝構(gòu)造函數(shù)三、簡(jiǎn)答題( 1 ) 類與對(duì)象有什么關(guān)系?【問(wèn)題解答】類是一種用戶自己定
41、義的數(shù)據(jù)類型,和其他數(shù)據(jù)類型不同的是,組成這種類型的不僅可以有數(shù)據(jù),而且可以有對(duì)數(shù)據(jù)進(jìn)行操作的函數(shù)。程序員可以使用這個(gè)新類型在程序中聲明新的變量,具有類類型的變量稱為對(duì)象。創(chuàng)建對(duì)象時(shí),類被用做樣板,對(duì)象稱為類的實(shí)例。( 2 ) 類定義的一般形式是什么?其成員有哪幾種訪問(wèn)權(quán)限?【問(wèn)題解答】定義類一般形式為:class 類名 public:<公有數(shù)據(jù)和函數(shù)>protected:<保護(hù)數(shù)據(jù)和函數(shù)>private:<私有數(shù)據(jù)和函數(shù)>-WORD格式 - 可編輯 -訪問(wèn)權(quán)限共有3 種:分別是公有( public)、保護(hù)( protected )和私有( private
42、)。( 3 ) 類的實(shí)例化是指創(chuàng)建類的對(duì)象還是定義類?【問(wèn)題解答】指創(chuàng)建類的對(duì)象。( 4 ) 什么是 this 指針?它的主要作用是什么?【問(wèn)題解答】this 指針是 C+ 語(yǔ)言為成員函數(shù)提供的一個(gè)隱含對(duì)象指針,它不能被顯式聲明。 this 指針是一個(gè)局部量,局部于某個(gè)對(duì)象。不同的對(duì)象調(diào)用同一個(gè)成員函數(shù)時(shí),編譯器根據(jù) this 指針來(lái)確定應(yīng)該引用哪一個(gè)對(duì)象的數(shù)據(jù)成員。( 5 ) 什么叫做拷貝構(gòu)造函數(shù)?拷貝構(gòu)造函數(shù)何時(shí)被調(diào)用?【問(wèn)題解答】拷貝構(gòu)造函數(shù)是一種特殊的構(gòu)造函數(shù),它的作用是用一個(gè)已經(jīng)存在的對(duì)象去初始化另一個(gè)對(duì)象。為了保證所引用的對(duì)象不被修改,通常把引用參數(shù)聲明為const 參數(shù)。在以下
43、3 種情況下,拷貝構(gòu)造函數(shù)都會(huì)被自動(dòng)調(diào)用:當(dāng)用類的一個(gè)對(duì)象去初始化該類的另一個(gè)對(duì)象時(shí);當(dāng)函數(shù)的形參是類的對(duì)象,進(jìn)行形參和實(shí)參結(jié)合時(shí);當(dāng)函數(shù)的返回值是類的對(duì)象,函數(shù)執(zhí)行完成返回調(diào)用者時(shí)。四、程序分析題(寫(xiě)出程序的輸出結(jié)果,并分析結(jié)果)( 1 )#include<iostream>using namespace std;class Testprivate:int num;-WORD格式 - 可編輯 -public:Test () ;/默認(rèn)構(gòu)造函數(shù)Test ( int n ) ; /帶一個(gè)參數(shù)構(gòu)造函數(shù);Test Test ()cout<<"Init defa&quo
44、t;<<endl;num=0;Test Test (int n )cout<<"Init"<<" "<<n<<endl;num=n;int main()Test x 2 ;/語(yǔ)句 1Test y ( 15 ) ; /語(yǔ)句 2return 0;【輸出結(jié)果】Init defaInit defaInit 15【問(wèn)題分析】本題主要考查構(gòu)造函數(shù)的調(diào)用時(shí)機(jī)和構(gòu)造函數(shù)的匹配問(wèn)題。-WORD格式 - 可編輯 -【要點(diǎn)提示】構(gòu)造函數(shù)在創(chuàng)建對(duì)象時(shí)被自動(dòng)調(diào)用,具體調(diào)用哪個(gè)構(gòu)造函數(shù)將由編譯系統(tǒng)根據(jù)重載函數(shù)的匹配原則來(lái)確
45、定。【結(jié)果分析】 程序聲明了2 個(gè)對(duì)象 x 和 y ,類中有 2 個(gè)構(gòu)造函數(shù)。 程序首先執(zhí)行語(yǔ)句1,創(chuàng)建對(duì)象x ,調(diào)用默認(rèn)構(gòu)造函數(shù)。由于對(duì)象x 是對(duì)象數(shù)組,每個(gè)數(shù)組元素被創(chuàng)建時(shí)都要調(diào)用構(gòu)造函數(shù),所以默認(rèn)構(gòu)造函數(shù)被調(diào)用了2 次,輸出第1、2 行結(jié)果。程序接著執(zhí)行語(yǔ)句2 ,創(chuàng)建對(duì)象y ,調(diào)用帶一個(gè)參數(shù)的構(gòu)造函數(shù),輸出第3 行結(jié)果。(2 )#include<iostream>using namespace std;class Xxprivate:int num;public:Xx ( int x ) num=x; /構(gòu)造函數(shù)Xx () cout<<"dst &quo
46、t;<<num<<endl; /析構(gòu)函數(shù);int main()Xx w ( 5 ) ; /語(yǔ)句 1cout<<"Exit main"<<endl; /語(yǔ)句 2return 0;【輸出結(jié)果】Exit main-WORD格式 - 可編輯 -dst 5【問(wèn)題分析】本題主要考查析構(gòu)函數(shù)的調(diào)用時(shí)機(jī)。【要點(diǎn)提示】析構(gòu)函數(shù)在釋放對(duì)象時(shí)被自動(dòng)調(diào)用?!窘Y(jié)果分析】 程序聲明了一個(gè)對(duì)象w 。 程序首先執(zhí)行語(yǔ)句 1,創(chuàng)建對(duì)象 w ,調(diào)用構(gòu)造函數(shù), num 得到初值 5 。程序接著執(zhí)行語(yǔ)句 2,輸出第 1 行結(jié)果。當(dāng)程序結(jié)束時(shí), 釋放對(duì)象 w ,析構(gòu)函數(shù)被調(diào)用, 輸出第 2 行結(jié)果。( 3 ) 將例 3.10 中的 Whole 類如下修改,其他部分不變,寫(xiě)出輸出結(jié)果。class Wholepublic:Whole ( int i ); /Whole的有參構(gòu)造函數(shù)Whole () ;/ Whole的無(wú)參構(gòu)造函數(shù)Whole () ;/ Whole的析構(gòu)函數(shù)private:Part p1;/子對(duì)象 1Part p2;/子對(duì)象 2Part p3;/子對(duì)象 3;Whole Whole (int i ):p2 ( i), p1 ()cout<<"Constr
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版安全防范設(shè)備安裝與保安人員勞務(wù)合同2篇
- 2025版太陽(yáng)能光伏發(fā)電系統(tǒng)安裝與安全檢驗(yàn)合同3篇
- 《養(yǎng)老保險(xiǎn)宣傳方案》課件
- 2025年度個(gè)人投資理財(cái)合同4篇
- 2025版萬(wàn)科物業(yè)知識(shí)共享與培訓(xùn)服務(wù)合同3篇
- 2025版戶外廣告牌清洗及維護(hù)服務(wù)合同3篇
- 2025版司機(jī)車輛維護(hù)保養(yǎng)合同3篇
- 二零二五年度大數(shù)據(jù)分析服務(wù)借款合同協(xié)議2篇
- 2025年度鋁單板智能制造技術(shù)改造項(xiàng)目合同4篇
- 2025版我國(guó)行政救濟(jì)制度優(yōu)化與執(zhí)行監(jiān)督合同3篇
- 2025-2030年中國(guó)陶瓷電容器行業(yè)運(yùn)營(yíng)狀況與發(fā)展前景分析報(bào)告
- 二零二五年倉(cāng)儲(chǔ)配送中心物業(yè)管理與優(yōu)化升級(jí)合同3篇
- 2025屆廈門高三1月質(zhì)檢期末聯(lián)考數(shù)學(xué)答案
- 音樂(lè)作品錄制許可
- 江蘇省無(wú)錫市2023-2024學(xué)年高三上學(xué)期期終教學(xué)質(zhì)量調(diào)研測(cè)試語(yǔ)文試題(解析版)
- 拉薩市2025屆高三第一次聯(lián)考(一模)英語(yǔ)試卷(含答案解析)
- 開(kāi)題報(bào)告:AIGC背景下大學(xué)英語(yǔ)教學(xué)設(shè)計(jì)重構(gòu)研究
- 師德標(biāo)兵先進(jìn)事跡材料師德標(biāo)兵個(gè)人主要事跡
- 連鎖商務(wù)酒店述職報(bào)告
- 《實(shí)踐論》(原文)毛澤東
- 第三單元名著導(dǎo)讀《紅星照耀中國(guó)》(公開(kāi)課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)+說(shuō)課稿)
評(píng)論
0/150
提交評(píng)論