【正文】
有和保護(hù)。(5) 對(duì)于任意一個(gè)類,析構(gòu)函數(shù)的個(gè)數(shù)最多為1個(gè)。二、 選擇題(至少選一個(gè),可以多選)(1) 以下不屬于類訪問(wèn)權(quán)限的是( B )。公有成員定義了類的外部接口。 D. (6) 關(guān)于成員函數(shù)的說(shuō)法中不正確的是( C )。(9) 下面對(duì)析構(gòu)函數(shù)的正確描述是( AC )。A. this指針必須顯式說(shuō)明B. 當(dāng)創(chuàng)建一個(gè)對(duì)象后,this指針就指向該對(duì)象C. 成員函數(shù)擁有this指針D. 靜態(tài)成員函數(shù)擁有this指針。(16) 對(duì)delete運(yùn)算符的下列描述中,( D )是錯(cuò)誤的。A. 靜態(tài)數(shù)據(jù)成員 B. 靜態(tài)成員函數(shù) C. 類以外的函數(shù)和數(shù)據(jù) 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)。程序員可以使用這個(gè)新類型在程序中聲明新的變量,具有類類型的變量稱為對(duì)象。(5) 什么叫做拷貝構(gòu)造函數(shù)?拷貝構(gòu)造函數(shù)何時(shí)被調(diào)用?【問(wèn)題解答】拷貝構(gòu)造函數(shù)是一種特殊的構(gòu)造函數(shù),它的作用是用一個(gè)已經(jīng)存在的對(duì)象去初始化另一個(gè)對(duì)象。Test∷Test(){ coutInit defaendl?!疽c(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)確定。} // 構(gòu)造函數(shù)~Xx(){coutdst numendl。② 程序首先執(zhí)行語(yǔ)句1,創(chuàng)建對(duì)象w,調(diào)用構(gòu)造函數(shù),num得到初值5。// 子對(duì)象1Part p2。◆如果X類的構(gòu)造函數(shù)沒(méi)有給出成員初始化列表,表明子對(duì)象將使用默認(rèn)構(gòu)造函數(shù)進(jìn)行初始化。private:int num。return 0?!窘忸}思路】① 題目中已給出了類的基本部分,需要增加一個(gè)構(gòu)造函數(shù)來(lái)初始化數(shù)據(jù)成員radius?!締?wèn)題分析】本題主要考查類定義的形式、對(duì)象成員訪問(wèn)和對(duì)象初始化的方法。// 語(yǔ)句2Book b2(70)。class Book{public:Book(int w)。【要點(diǎn)提示】◆當(dāng)建立X類的對(duì)象時(shí),先調(diào)用子對(duì)象的構(gòu)造函數(shù),初始化子對(duì)象,然后才執(zhí)行X類的構(gòu)造函數(shù),初始化X類中的其他成員。 // Whole的無(wú)參構(gòu)造函數(shù)~Whole()。【要點(diǎn)提示】析構(gòu)函數(shù)在釋放對(duì)象時(shí)被自動(dòng)調(diào)用。class Xx{private:int num。 // 語(yǔ)句2return 0。// 默認(rèn)構(gòu)造函數(shù)Test(int n)。this指針是一個(gè)局部量,局部于某個(gè)對(duì)象。(23) 下面選項(xiàng)中,( C )不是類的成員函數(shù)。靜態(tài)成員函數(shù)和非靜態(tài)成員函數(shù)均可操作靜態(tài)數(shù)據(jù)成員。(15) 對(duì)new運(yùn)算符的下列描述中,( B )是錯(cuò)誤的。A. 成員函數(shù) B. 構(gòu)造函數(shù) C. 析構(gòu)函數(shù) D. 復(fù)制構(gòu)造函數(shù)(12) 通常拷貝構(gòu)造函數(shù)的參數(shù)是( C )。(8) 假定A是一個(gè)類,那么執(zhí)行語(yǔ)句“A a,b(3),*p; ”調(diào)用了( B ) 次構(gòu)造函數(shù)。(5) 設(shè)MClass是一個(gè)類,dd是它的一個(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)行。(3) 在類定義的外部,可以被任意函數(shù)訪問(wèn)的成員有( C )。(11) 友元的正確使用能提高程序的效率,但破壞了類的封裝性和數(shù)據(jù)的隱蔽性。(4) 假定Dc是一個(gè)類,則執(zhí)行“Dc a[10],b(2)”語(yǔ)句時(shí),系統(tǒng)自動(dòng)調(diào)用該類構(gòu)造函數(shù)的次數(shù)為11。coutpow(x,y)=zendl?!窘忸}思路】① 由于要用到系統(tǒng)函數(shù)pow(x,y),所以要包含頭文件cmath。 coutref=refendl。(6) 重載函數(shù)時(shí)通過(guò)什么來(lái)區(qū)分?【問(wèn)題解答】編譯系統(tǒng)將根據(jù)函數(shù)參數(shù)的類型和個(gè)數(shù)來(lái)判斷使用哪一個(gè)函數(shù)。在程序編譯時(shí),編譯系統(tǒng)將程序中出現(xiàn)內(nèi)聯(lián)函數(shù)調(diào)用的地方用函數(shù)體進(jìn)行替換,進(jìn)而減少了程序運(yùn)行的時(shí)間。(2) 引用有何用處?【問(wèn)題解答】除了獨(dú)立引用外,在C++程序中,引用的主要用途是用作函數(shù)參數(shù)和函數(shù)的返回值。( )【結(jié)果分析】對(duì)引用初始化必須使用同類型的變量。在程序編譯時(shí),編譯系統(tǒng)將程序中出現(xiàn)內(nèi)聯(lián)函數(shù)調(diào)用的地方用函數(shù)體進(jìn)行替換,進(jìn)而減少了程序運(yùn)行的時(shí)間,但會(huì)增加程序代碼的大小。(7) 下列有關(guān)設(shè)置函數(shù)參數(shù)默認(rèn)值的描述中,( D )是正確的。xxB. *xxC. . xx【結(jié)果分析】pp指向xx所在的內(nèi)存單元,這樣*pp和xx等價(jià)。C. int p1,*p2=amp。int *p=amp。(9) C++有值傳遞和引用傳遞兩種參數(shù)傳遞機(jī)制。(4) cin是預(yù)定義的標(biāo)準(zhǔn)輸入流對(duì)象,是輸入操作符,也稱提取運(yùn)算符。第2章從C到C++面向?qū)ο蟪绦蛟O(shè)計(jì)教程(C++語(yǔ)言描述)題解與課程設(shè)計(jì)指導(dǎo)第2章從C到C++一、 名詞解釋引用內(nèi)聯(lián)函數(shù)重載函數(shù) 【問(wèn)題解答】所謂引用就是給對(duì)象取一個(gè)別名,使用該別名可以存取該對(duì)象。類正是面向?qū)ο笳Z(yǔ)言的基本程序模塊,通過(guò)類的設(shè)計(jì)來(lái)完成實(shí)體的建模任務(wù)。它把數(shù)據(jù)結(jié)構(gòu)和算法分離為相互獨(dú)立的實(shí)體,一旦數(shù)據(jù)結(jié)構(gòu)需要改變時(shí),常常要涉及整個(gè)程序,修改工作量極大并容易產(chǎn)生新的錯(cuò)誤。(7) 學(xué)習(xí)C++語(yǔ)言是學(xué)習(xí)面向?qū)ο蟮某绦蛟O(shè)計(jì)方法的唯一途徑。( ) 【結(jié)果分析】消息是面向?qū)ο蟪绦蛟O(shè)計(jì)用來(lái)描述對(duì)象之間通信的機(jī)制。(9) 下面說(shuō)法正確的是( AD )。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ò)程的。(3) 在結(jié)構(gòu)化程序設(shè)計(jì)方法中,程序可表示為程序=數(shù)據(jù)結(jié)構(gòu)+算法; 而面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,程序可表示為程序=對(duì)象+消息。面向?qū)ο蠓椒ㄖ械姆庋b就是把抽象出來(lái)的對(duì)象的屬性和行為結(jié)合成一個(gè)獨(dú)立的單位,并盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié)。三、 選擇題(至少選一個(gè),可以多選)(1) 面向?qū)ο蟪绦蛟O(shè)計(jì)著重于( B )的設(shè)計(jì)。A. 算法 B. 信息 C. 數(shù)據(jù)隱藏 D. 數(shù)據(jù)抽象(7) 下面( A )不是面向?qū)ο笙到y(tǒng)所包含的要素。對(duì)象之間存在各種聯(lián)系,但它們之間只能通過(guò)消息進(jìn)行通信。( ) 【結(jié)果分析】當(dāng)一個(gè)對(duì)象發(fā)出消息時(shí),由于接收對(duì)象的類型可能不同,所以,它們可能做出不同的反應(yīng)。( √ ) 五、 簡(jiǎn)答題(1) 什么是結(jié)構(gòu)化程序設(shè)計(jì)方法?它有哪些優(yōu)點(diǎn)和缺點(diǎn)?【問(wèn)題解答】結(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ù),便于開發(fā)和維護(hù)。(2) 什么是面向?qū)ο蟪绦蛟O(shè)計(jì)方法?它有哪些優(yōu)點(diǎn)?【問(wèn)題解答】面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中,將程序設(shè)計(jì)為一組相互協(xié)作的對(duì)象而不是一組相互協(xié)作的函數(shù)。程序的執(zhí)行取決于事件發(fā)生的順序,由