面向?qū)ο蟪绦蛟O(shè)計教程-答案_第1頁
面向?qū)ο蟪绦蛟O(shè)計教程-答案_第2頁
面向?qū)ο蟪绦蛟O(shè)計教程-答案_第3頁
面向?qū)ο蟪绦蛟O(shè)計教程-答案_第4頁
面向?qū)ο蟪绦蛟O(shè)計教程-答案_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、面向?qū)ο蟪绦蛟O(shè)計教程(C卄語言描述)題解與課程設(shè)計指導(dǎo)第章面向?qū)ο蟪绦蛟O(shè)計概論一、名詞解釋抽象封裝消息【問題解答】面向?qū)ο蠓椒ㄖ械某橄笫侵笇唧w問題(對象)進(jìn)行概括,抽岀一類對象的公共 性質(zhì)并加以描述的過程。面向?qū)ο蠓椒ㄖ械姆庋b就是把抽象岀來的對象的屬性和行為結(jié)合成一個獨立的 單位,并盡可能隱蔽對象的內(nèi)部細(xì)節(jié)。消息是面向?qū)ο蟪绦蛟O(shè)計用來描述對象之間通信的機(jī)制。一個消息就是一個對象 要求另一個對象實施某種操作的一個請求。二、填空題(1)目前有面向過程的結(jié)構(gòu)化程序設(shè)計方法和面向?qū)ο蟮某绦蛟O(shè)計方法兩種重 要的程序設(shè)計方法。(2)結(jié)構(gòu)化程序設(shè)計方法中的模塊由順序.選擇和循環(huán)3種基本結(jié)構(gòu)組成。(3)在結(jié)

2、構(gòu)化程序設(shè)計方法中,程序可表示為程序二數(shù)據(jù)結(jié)構(gòu)+算法;而面向 對象的程序設(shè)計方法,程序可表示為程序二對象+消息。(4)結(jié)構(gòu)化程序設(shè)計方法中的基本模塊是過程;而面向?qū)ο蟪绦蛟O(shè)計方法中 的基本模塊是類。(5)面向?qū)ο蟪绦蛟O(shè)計方法具有抽象性、封裝性、繼承性和多態(tài)性等特點。三、選擇題(至少選一個,可以多選)(1)面向?qū)ο蟪绦蛟O(shè)計著重于(B )的設(shè)計。A. 對象B.類C.算法I).數(shù)據(jù)(2)面向?qū)ο蟪绦蛟O(shè)計中,把對象的屬性和行為組織在同一個模塊內(nèi)的機(jī)制叫 做(C )。A抽象 B.繼承 C.封裝 D.多態(tài)(3)在面向?qū)ο蟪绦蛟O(shè)計中,類通過(D )與外界發(fā)生關(guān)系。A. 對象B.類 C.消息D.接口(4)面向

3、對象程序設(shè)計中,對象與對象之間的通信機(jī)制是(C )。A. 對象 B.類 C.消息D接口(5)關(guān)于C+與C語言的關(guān)系的描述中,(D)是錯誤的。A. C語言是C+的一個子集B. C語言與C+是兼容的C. C+對C語言進(jìn)行了一些改進(jìn)D. C+和C語言都是面向?qū)ο蟮摹窘Y(jié)果分析】C語言是面向過程的。C+語言是一種經(jīng)過改進(jìn)的更為優(yōu)化的C語言,是一種混 合型語言,既面向過程也面向?qū)ο?。?)面向?qū)ο蟮某绦蛟O(shè)計將數(shù)據(jù)結(jié)構(gòu)與(A )放在一起,作為一個相互依 存、不可分割的整體來處理。A. 算法B.信息C.數(shù)據(jù)隱藏D.數(shù)據(jù)抽象(7)下面(A )不是面向?qū)ο笙到y(tǒng)所包含的要素。A. 重載B.對象C.類D.繼承【結(jié)果分

4、析】面向?qū)ο蠖ο?類+繼承+消息+多態(tài)(8)下面說法正確的是(BC )。A. 將數(shù)據(jù)結(jié)構(gòu)和算法置于同一個函數(shù)內(nèi),即為數(shù)據(jù)封裝B. 一個類通過繼承可以獲得另一個類的特性C. 面向?qū)ο笠蟪绦騿T集中于事物的本質(zhì)特征,用抽象的觀點看待程序D. 同一消息為不同的對象接受時,產(chǎn)生的行為是一樣的,這稱為一致性【結(jié)果分析】面向?qū)ο蟪绦蛟O(shè)計方法具有抽象性、封裝性、繼承性和多態(tài)性等特點。將數(shù)據(jù)結(jié) 構(gòu)和算法置于同一個類內(nèi),即為數(shù)據(jù)封裝。同一消息為不同的對象接受時,產(chǎn)生 的行為可能是不一樣的,這稱為多態(tài)性。(9)下面說法正確的是(AD )。A. 對象是計算機(jī)內(nèi)存中的一塊區(qū)域,它可以存放代碼和數(shù)據(jù)1B. 對象實際是

5、功能相對獨立的一段程序C. 各個對象間的數(shù)據(jù)可以共享是對象的一大優(yōu)點D. 在面向?qū)ο蟮某绦蛑?,對象之間只能通過消息相互通信【結(jié)果分析】對象是計算機(jī)內(nèi)存中的一塊區(qū)域。在對象中,不但存有數(shù)據(jù),而且存有代碼,使 得每個對象在功能上相互之間保持相對獨立。對象之間存在各種聯(lián)系,但它們之 間只能通過消息進(jìn)行通信。四、判斷題(1)在高級程序設(shè)計語言中,一般用類來實現(xiàn)對象,類是具有相同屬性和行為 的一組對象的集合,它是創(chuàng)建對象的模板。(V )(2)C+語言只支持面向?qū)ο蠹夹g(shù)的抽象性、封裝性、繼承性等特性,而不支 持多態(tài)性。(X )【結(jié)果分析】C+語言不僅支持面向?qū)ο蠹夹g(shù)的抽象性、封裝性、繼承性等特性,而且支持

6、多 態(tài)性。:3)面向?qū)ο蟪绦蛟O(shè)計中的消息應(yīng)該包含如何做”的信息。(X )【結(jié)果分析】消息是面向?qū)ο蟪绦蛟O(shè)計用來描述對象之間通信的機(jī)制。向?qū)ο蟆鞍l(fā)送消息”只 需告訴對象做什么,對象根據(jù)這個消息決定如何做。(4)一個消息只能產(chǎn)生特定的響應(yīng)效果。( X )【結(jié)果分析】當(dāng)一個對象發(fā)出消息時,由于接收對象的類型可能不同,所以,它們可能做出不 同的反應(yīng)。這樣,一個消息可以產(chǎn)生不同的響應(yīng)效果,這種現(xiàn)象叫做多態(tài)。(5)類的設(shè)計和類的繼承機(jī)制實現(xiàn)了軟件模塊的可重用性。(V )(6)C+語言和Java語言均不是一個純正的面向?qū)ο蟮某绦蛟O(shè)計的語言。(X )【結(jié)果分析】Java語言是一個純正的面向?qū)ο蟮某绦蛟O(shè)計語言。

7、(7)學(xué)習(xí)C+語言是學(xué)習(xí)面向?qū)ο蟮某绦蛟O(shè)計方法的唯一途徑。(X ) 【結(jié)果分析】程序設(shè)計方法是獨立于具體程序設(shè)計語言的一種技術(shù),學(xué)習(xí)C+語言是學(xué)習(xí)面向 對象程序設(shè)計方法的重要途徑之一。(8)在C+語言中,類是支持?jǐn)?shù)據(jù)封裝的工具。(V )I五、簡答題(1)什么是結(jié)構(gòu)化程序設(shè)計方法它有哪些優(yōu)點和缺點【問題解答】結(jié)構(gòu)化程序設(shè)計方法著眼于系統(tǒng)要實現(xiàn)的功能,從系統(tǒng)的輸入輸出出發(fā),分析系 統(tǒng)要做哪些事情,進(jìn)而考慮如何做這些事情,自頂向下地對系統(tǒng)的功能進(jìn)行分解, 來建立系統(tǒng)的功能結(jié)構(gòu)和相應(yīng)的程序模塊結(jié)構(gòu),有效地將一個較復(fù)雜的程序系統(tǒng) 設(shè)計任務(wù)分解成許多易于控制和處理的子任務(wù),便于開發(fā)和維護(hù)。隨著程序規(guī)模與復(fù)

8、雜性的增長,這種面向過程的結(jié)構(gòu)化程序設(shè)計方法存在明顯的 不足之處o首先是數(shù)據(jù)安全性問題。由于數(shù)據(jù)被每個模塊所共用,因此是不安全 的,一旦出錯,很難查明原因。其次是可維護(hù)性及可重用性差。它把數(shù)據(jù)結(jié)構(gòu)和 算法分離為相互獨立的實體,一旦數(shù)據(jù)結(jié)構(gòu)需要改變時,常常要涉及整個程序, 修改工作量極大并容易產(chǎn)生新的錯誤。每一種相對于老問題的新方法都要帶來額 外的開銷。另外,圖形用戶界面的應(yīng)用程序,很難用過程來描述和實現(xiàn),開發(fā)和 維護(hù)也都很困難。(2)什么是面向?qū)ο蟪绦蛟O(shè)計方法它有哪些優(yōu)點【問題解答】面向?qū)ο蟮某绦蛟O(shè)計方法中,將程序設(shè)計為一組相互協(xié)作的對象而不是一組相互 協(xié)作的函數(shù)。在程序中,屬性用數(shù)據(jù)表示,用

9、來描述對象靜態(tài)特征;行為用程 序代碼實現(xiàn),用來描述對象動態(tài)特征。可見,在面向?qū)ο蟮某绦蛟O(shè)計方法中,對 象是數(shù)據(jù)結(jié)構(gòu)和算法的封裝體。對象之間存在各種聯(lián)系,它們之間通過消息進(jìn)行 通信。程序可表示為:程序二對象+消息在面向?qū)ο蟪绦蛟O(shè)計中應(yīng)著重于類的設(shè)計。類正是面向?qū)ο笳Z言的基本程序模 塊,通過類的設(shè)計來完成實體的建模任務(wù)。類通過一個簡單的外部接口與外界發(fā) 生關(guān)系。一個類中的操作不會處理到另一個類中的數(shù)據(jù),這樣程序模塊的獨立性、 數(shù)據(jù)的安全性就有了良好的保障。程序的執(zhí)行取決于事件發(fā)生的順序,由順序產(chǎn) 生的消息來驅(qū)動程序的執(zhí)行。不必預(yù)先確定消息產(chǎn)生的順序,更符合客觀世界的 實際。并且面向?qū)ο蟪绦蛟O(shè)計方法

10、提供了軟件重用、解決大問題和復(fù)雜問題的有 效途徑,具有抽象性、封裝性、繼承性和多態(tài)性等特點。(3)結(jié)構(gòu)化程序設(shè)計方法與面向?qū)ο蟪绦蛟O(shè)計方法在對待數(shù)據(jù)結(jié)構(gòu)和算法關(guān) 系上有什么不同【問題解答】結(jié)構(gòu)化程序設(shè)計方法中,把數(shù)據(jù)結(jié)構(gòu)和算法分離為相互獨立的實體;而在面向 對象程序設(shè)計中,數(shù)據(jù)結(jié)構(gòu)和算法封裝在一起,結(jié)合成一個獨立的單位,即對象, 并盡可能隱蔽對象的內(nèi)部細(xì)節(jié)。對象的私有屬性只能由這個對象的行為來讀取和 修改,與外部的聯(lián)系通過公有行為充當(dāng)外部接口。從C到C+面向?qū)ο蟪绦蛟O(shè)計教程(C卄語言描述)題解與課程設(shè)計指導(dǎo)第2章 從C到 C+一、名詞解釋引用內(nèi)聯(lián)函數(shù)重載函數(shù)【問題解答】所謂引用就是給對象取一個

11、別名,使用該別名可以存取該對象。換句話說是使新 對象和原對象共用一個地址。內(nèi)聯(lián)函數(shù)是使用inline關(guān)鍵字聲明的函數(shù)。重載函數(shù)指在同一個作用域內(nèi)名字相同而參數(shù)不同的函數(shù)重載函數(shù)通常用來對 具有相似行為而數(shù)據(jù)類型或數(shù)據(jù)個數(shù)不同的操作提供一個通用的名稱。二、填空題(1)一般情況下,用C+語言編寫的程序是由函數(shù)加上類組成的。(2)C+有兩種注釋符號,一種是 int pl, *p2, p3;B. int*p2,pl, *p3;C. int pl, *p2=&pl, *p3;D. int*p2, pl, *p3二&pl;【結(jié)果分析】指針定義的具體格式如下所示:類型*指針名1,*指針名2,;(2)若有定義

12、double xx=, *pp=&xx; ”,貝!【*pp 等價于(C )。A. &xxB *xxC. xx【結(jié)果分析】PP指向XX所在的內(nèi)存單元,這樣*pp和XX等價。(3)下面對引用的描述中(C )是錯誤的。A. 引用是某個變量或?qū)ο蟮膭e名B. 建立引用時,要對它初始化C. 對引用初始化可以使用任意類型的變量D. 引用與其代表的對象具有相同的地址【結(jié)果分析】所謂引用就是給對象取一個別名,使用該別名可以存取該對象,所以對引用初始 化必須使用同類型的變量。(4)函數(shù)沒有返回值的時候,應(yīng)該選擇(A )的函數(shù)類型。A. void B. intC.不確定 D. float(5)在函數(shù)的定義格式中,下

13、面各組成部分中,(D )是可以省略的。A.函數(shù)名 B.函數(shù)體 C.返回值類型D.函數(shù)參數(shù)【結(jié)果分析】函數(shù)的定義可以缺省形式參數(shù),此時稱為無參函數(shù)。(6)對重載的函數(shù)來說,下面敘述不正確的是(D )。A. 參數(shù)的類型不同IB. 參數(shù)的順序不同C. 參數(shù)的個數(shù)不同D. 參數(shù)的個數(shù)、類型、順序都相同,但函數(shù)的返回值類型不同【結(jié)果分析】對重載的函數(shù)來說,編譯系統(tǒng)將根據(jù)函數(shù)參數(shù)的類型和個數(shù)來判斷使用哪一個函 數(shù),所以重載函數(shù)參數(shù)的個數(shù)、類型、順序不能都相同。(7)下列有關(guān)設(shè)置函數(shù)參數(shù)默認(rèn)值的描述中,(D )是正確的。A. 對設(shè)置函數(shù)參數(shù)默認(rèn)值的順序沒有任何規(guī)定B. 函數(shù)具有一個參數(shù)時不能設(shè)置默認(rèn)值C默認(rèn)

14、參數(shù)要設(shè)置在函數(shù)的原型中,而不能設(shè)置在函數(shù)的定義語句中D.設(shè)置默認(rèn)參數(shù)可使用表達(dá)式,但表達(dá)式中不可用局部變量【結(jié)果分析】在C+中,在函數(shù)原型中可以為一個或多個參數(shù)指定默認(rèn)值。對函數(shù)參數(shù)設(shè)置默 認(rèn)值要注意以下幾點。若沒有聲明函數(shù)原型,參數(shù)的默認(rèn)值可在函數(shù)定義的頭部進(jìn)行設(shè)置,否則必須 在函數(shù)原型中進(jìn)行設(shè)置。在一個指定了默認(rèn)值的參數(shù)右邊不能岀現(xiàn)沒有指定默認(rèn)值的參數(shù)。設(shè)置默認(rèn)參數(shù)可使用表達(dá)式,但表達(dá)式中不可用局部變量。(8)下面說法正確的是(BC )。A. 所有的函數(shù)都可以說明為內(nèi)聯(lián)函數(shù)B. 具有循環(huán)語句、switch語句的函數(shù)不能說明為內(nèi)聯(lián)函數(shù)C. 使用內(nèi)聯(lián)函數(shù),可以加快程序執(zhí)行的速度,但會增加程序

15、代碼的大小D. 使用內(nèi)聯(lián)函數(shù),可以減小程序代碼大小,但使程序執(zhí)行的速度減慢【結(jié)果分析】內(nèi)聯(lián)函數(shù)主要是解決程序的運(yùn)行效率問題。在程序編譯時,編譯系統(tǒng)將程序中出 現(xiàn)內(nèi)聯(lián)函數(shù)調(diào)用的地方用函數(shù)體進(jìn)行替換,進(jìn)而減少了程序運(yùn)行的時間,但會增 加程序代碼的大小。它是以空間換取時間,因此內(nèi)聯(lián)函數(shù)適用于功能不太復(fù)雜, 但要求被頻繁調(diào)用的函數(shù)。(9)一個函數(shù)功能不太復(fù)雜,但要求被頻繁調(diào)用,應(yīng)選用(A )。A. 內(nèi)聯(lián)函數(shù) B.重載函數(shù)C.遞歸函數(shù) D.嵌套函數(shù)(10)C+對C語言做了很多改進(jìn),下列描述中使得C語言發(fā)生了質(zhì)變,即從 面向過程變成面向?qū)ο蟮氖牵― )。A. 增加了一些新的運(yùn)算符B. 允許函數(shù)重載,并允許

16、設(shè)置默認(rèn)參數(shù)C. 規(guī)定函數(shù)說明必須用原型D. 引進(jìn)了類和對象的概念【結(jié)果分析】面向?qū)ο蠖ο?類+繼承+消息+多態(tài)四、判斷題(1)C+程序中,不得使用沒有定義或說明的變量。(J )(2)使用const說明常量時,可以不必指出類型。(X )【結(jié)果分析】如果用const定義的是一個整型常量,則類型說明符int可以省略。(3)引用被創(chuàng)建時可以用任意變量進(jìn)行初始化。(X )【結(jié)果分析】對引用初始化必須使用同類型的變量。(4)一個返回引用的調(diào)用函數(shù)可以作為左值。(V )(5)函數(shù)可以沒有參數(shù),也可以沒有返回值。(V )(6)沒有參數(shù)的兩個函數(shù)是不能重載的。(V )(7)函數(shù)可設(shè)置默認(rèn)參數(shù),但不允許將一個

17、函數(shù)的所有參數(shù)都設(shè)置為默認(rèn)參數(shù)。(X )【結(jié)果分析】函數(shù)可設(shè)置默認(rèn)參數(shù),且允許將一個函數(shù)的所有參數(shù)都設(shè)置為默認(rèn)參數(shù)。(8)運(yùn)算符neu分配的空間由運(yùn)算符delete釋放。(V )五、簡答題(1)名字空間的用途是什么【問題解答】名字空間用來防止命名的沖突。(2)引用有何用處【問題解答】除了獨立引用外,在C+程序中,引用的主要用途是用作函數(shù)參數(shù)和函數(shù)的返回 值。(3)比較值調(diào)用和引用調(diào)用的相同點與不同點。【問題解答】在值調(diào)用機(jī)制中,作為實參的表達(dá)式的值被復(fù)制到由對應(yīng)的形參名所標(biāo)識的一個 對象中,作為形參的初始值。函數(shù)體對形參的訪問、修改都是在這個標(biāo)識對象上 操作的,與實參無關(guān),即數(shù)據(jù)的傳遞是單向的

18、。使用引用作函數(shù)的形參時,調(diào)用函數(shù)的實參要用變量名。實參傳遞給形參,相當(dāng) 于在被調(diào)用函數(shù)中使用了實參的別名o于是,在被調(diào)用函數(shù)中對形參的操作實質(zhì) 是對實參的直接操作,即數(shù)據(jù)的傳遞是雙向的。(4)內(nèi)聯(lián)函數(shù)有什么作用它有哪些特點【問題解答】內(nèi)聯(lián)函數(shù)是使用inline關(guān)鍵字聲明的函數(shù) 在程序編譯時,編譯系統(tǒng)將程序中 岀現(xiàn)內(nèi)聯(lián)函數(shù)調(diào)用的地方用函數(shù)體進(jìn)行替換,進(jìn)而減少了程序運(yùn)行的時間。使用內(nèi)聯(lián)函數(shù)應(yīng)注意以下幾點。遞歸函數(shù)不能定義為內(nèi)聯(lián)函數(shù)。內(nèi)聯(lián)函數(shù)一般適合于不含有switch和whi le等復(fù)雜的結(jié)構(gòu)且只有5條語句 的小函數(shù),否則編譯系統(tǒng)將該函數(shù)視為普通函數(shù)。內(nèi)聯(lián)函數(shù)只能先定義后使用,否則編譯系統(tǒng)也將該

19、函數(shù)視為普通函數(shù)。)對內(nèi)聯(lián)函數(shù)也不能進(jìn)行異常接口聲明。(5)函數(shù)原型中的參數(shù)名與函數(shù)定義中的參數(shù)名以及函數(shù)調(diào)用中的參數(shù)名必須 一致嗎【問題解答】不必一致。所有的參數(shù)是根據(jù)位置和類型而不是名字來區(qū)分的。(6)重載函數(shù)時通過什么來區(qū)分【問題解答】編譯系統(tǒng)將根據(jù)函數(shù)參數(shù)的類型和個數(shù)來判斷使用哪一個函數(shù)。六、程序分析題(寫岀程序的輸出結(jié)果,并分析結(jié)果)#i ncludeiostreani using namespace std;int main () int num=50;int& ref=num;ref=ref+10;coutnnum=,rusing namespace std;class Test

20、%private:int num;public:Test () ;/默認(rèn)構(gòu)造函數(shù)Test (int n) ; /帶一個參數(shù)構(gòu)造函數(shù);Test::Test ()cout,Init defarendl;num=O;TestiITest (int n)cout,rInitn,r ,rnendl; num二n;int main ()Test x 2 ;/ 語句 1Test y (15) ; / 語句 2 return 0;【輸出結(jié)果】Init defaInit defaInit 15【問題分析】本題主要考查構(gòu)造函數(shù)的調(diào)用時機(jī)和構(gòu)造函數(shù)的匹配問題?!疽c提示】構(gòu)造函數(shù)在創(chuàng)建對象時被自動調(diào)用,具體調(diào)用哪個

21、構(gòu)造函數(shù)將由編譯系統(tǒng)根據(jù)重 載函數(shù)的匹配原則來確定?!窘Y(jié)果分析】 程序聲明了 2個對象x和八類中有2個構(gòu)造函數(shù)。 程序首先執(zhí)行語句U創(chuàng)建對象x,調(diào)用默認(rèn)構(gòu)造函數(shù)。由于對象x是對象數(shù) 組,每個數(shù)組元素被創(chuàng)建時都要調(diào)用構(gòu)造函數(shù),所以默認(rèn)構(gòu)造函數(shù)被調(diào)用了2 次,輸出第k 2行結(jié)果。程序接著執(zhí)行語句2,創(chuàng)建對象y,調(diào)用帶一個參數(shù)的 構(gòu)造函數(shù),輸出第3行結(jié)果。(2) #i ncludeiostreaniusing namespace std; class Xxprivate:int num;public:Xx (int x) num=x; / 構(gòu)造函數(shù)、Xx () coutndst wnumendl;

22、/ 析構(gòu)函數(shù);int main ()Xx w (5) ; / 語句 1coutrExit mainrendl; / 語句 2return 0;【輸出結(jié)果】Exit mainsdst 5【問題分析】本題主要考查析構(gòu)函數(shù)的調(diào)用時機(jī)。【要點提示】析構(gòu)函數(shù)在釋放對象時被自動調(diào)用?!窘Y(jié)果分析】I 程序聲明了一個對象W。 程序首先執(zhí)行語句1,創(chuàng)建對象W,調(diào)用構(gòu)造函數(shù),nuni得到初值5。程序接 著執(zhí)行語句2,輸出第1行結(jié)果。當(dāng)程序結(jié)束時,釋放對象趴析構(gòu)函數(shù)被調(diào)用, 輸岀第2行結(jié)果。(3) 將例中的Whole類如下修改,其他部分不變,寫出輸出結(jié)果。class Wholepublic:Whole (int i

23、) ; / Whole的有參構(gòu)造函數(shù)Whole ( ) ;/ Whole的無參構(gòu)造函數(shù)Whole () ;/ Whole 的析構(gòu)函數(shù)(private:Part pl;/ 子對象 1Part p2;/ 子對象 2Part p3; / 子對象 3;Whole: :Whole (int i) : p2 (i) , pl ()coutConstructor of Whole,rendl;Whole:Whole () coutrDestructor of Whole,rendl; 【輸出結(jié)果】Default constructor of PartConstructor of Part, 3Default

24、 constructor of PartConstructor of WholeDestructorof WholeDestructorof Part,Destructorof Part,Destructor ofPart,【問題分析】本題主要考查子對象初始化的方法和含有子對象時構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用 順序?!疽c提示】當(dāng)建立X類的對象時,先調(diào)用子對象的構(gòu)造函數(shù),初始化子對象,然后才執(zhí)行 X類的構(gòu)造函數(shù),初始化X類中的其他成員。對子對象構(gòu)造函數(shù)的調(diào)用順序取決于這些子對象在類中的說明順序,與它們在 成員初始化列表中給岀的順序無關(guān)。如果X類的構(gòu)造函數(shù)沒有給岀成員初始化列表,表明子對象將使用默認(rèn)構(gòu)造函 數(shù)進(jìn)行初始化。析構(gòu)函數(shù)的調(diào)用順序與構(gòu)造函數(shù)的調(diào)用順序正好相反。【結(jié)果分析】程序的Whole類中出現(xiàn)了類Part的3個對象pl、p2和p3,作為該類的數(shù)據(jù)成 員,則pl、p2和p3被稱為子對象當(dāng)建立Whole類的對象w時,子對象pl、 p2和p3被建立,相應(yīng)的構(gòu)造函數(shù)被執(zhí)行。由于pl在Whole類中

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論