




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
面向?qū)ο蟪绦蛟O(shè)計(jì)教程〔C++語(yǔ)言描述〕題解與課程設(shè)計(jì)指導(dǎo)第1章面向?qū)ο蟪绦蛟O(shè)計(jì)概論一、名詞講解抽象封裝信息【問(wèn)題解答】面向?qū)ο蠓椒ㄖ械某橄笫侵笇?duì)詳盡問(wèn)題〔對(duì)象〕進(jìn)行概括,抽出一類(lèi)對(duì)象的公共性質(zhì)并加以描述的過(guò)程。面向?qū)ο蠓椒ㄖ械姆庋b就是把抽象出來(lái)的對(duì)象的屬性和行為結(jié)合成一個(gè)獨(dú)立的單位,并盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié)。信息是面向?qū)ο蟪绦蛟O(shè)計(jì)用來(lái)描述對(duì)象之間通信的體系。一個(gè)信息就是一個(gè)對(duì)象要求另一個(gè)對(duì)象推行某種操作的一個(gè)央求。二、填空題1〕目前有面向過(guò)程的構(gòu)造化程序設(shè)計(jì)方法和面向?qū)ο蟮某绦蛟O(shè)計(jì)方法兩種重要的程序設(shè)計(jì)方法。〔2〕構(gòu)造化程序設(shè)計(jì)方法中的模塊由序次、選擇和循環(huán)3種根本構(gòu)造組成。〔3〕在構(gòu)造化程序設(shè)計(jì)方法中,程序可表示為程序=數(shù)據(jù)構(gòu)造+算法;而面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,程序可表示為程序=對(duì)象+信息。4〕構(gòu)造化程序設(shè)計(jì)方法中的根本模塊是過(guò)程;而面向?qū)ο蟪绦蛟O(shè)計(jì)方法中的根本模塊是類(lèi)。5〕面向?qū)ο蟪绦蛟O(shè)計(jì)方法擁有抽象性、封裝性、繼承性和多態(tài)性等特點(diǎn)。三、選擇題〔最少選一個(gè),能夠多項(xiàng)選擇〕1〕面向?qū)ο蟪绦蛟O(shè)計(jì)重視于〔B〕的設(shè)計(jì)。對(duì)象B.類(lèi)C.算法D.數(shù)據(jù)2〕面向?qū)ο蟪绦蛟O(shè)計(jì)中,把對(duì)象的屬性和行為組織在同一個(gè)模塊內(nèi)的體系叫做〔C〕。A.抽象B.繼承C.封裝D.多態(tài)〔3〕在面向?qū)ο蟪绦蛟O(shè)計(jì)中,類(lèi)經(jīng)過(guò)〔D〕與外界發(fā)生關(guān)系。A.對(duì)象B.類(lèi)C.信息D.接口〔4〕面向?qū)ο蟪绦蛟O(shè)計(jì)中,對(duì)象與對(duì)象之間的通信體系是〔C〕。A.對(duì)象B.類(lèi)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)行了一些改良D.C++和C語(yǔ)言都是面向?qū)ο蟮摹窘Y(jié)果解析】C語(yǔ)言,是一種C語(yǔ)言是面向過(guò)程的。C++語(yǔ)言是一種經(jīng)過(guò)改良的更為優(yōu)化的混雜型語(yǔ)言,既面向過(guò)程也面向?qū)ο蟆?〕面向?qū)ο蟮某绦蛟O(shè)計(jì)將數(shù)據(jù)構(gòu)造與〔A〕放在一起,作為一個(gè)相互依存、不能切割的整體來(lái)辦理。A.算法B.信息C.數(shù)據(jù)隱蔽D.數(shù)據(jù)抽象〔7〕下面〔A〕不是面向?qū)ο笙到y(tǒng)所包含的要素。A.重載B.對(duì)象C.類(lèi)D.繼承【結(jié)果解析】面向?qū)ο?對(duì)象+類(lèi)+繼承+信息+多態(tài)〔8〕下面說(shuō)法正確的選項(xiàng)是〔BC〕。將數(shù)據(jù)構(gòu)造和算法置于同一個(gè)函數(shù)內(nèi),即為數(shù)據(jù)封裝一個(gè)類(lèi)經(jīng)過(guò)繼承能夠獲得另一個(gè)類(lèi)的特點(diǎn)面向?qū)ο笠蟪绦騿T集中于事物的實(shí)質(zhì)特點(diǎn),用抽象的見(jiàn)解對(duì)待程序同一信息為不一樣的對(duì)象接受時(shí),產(chǎn)生的行為是相同的,這稱(chēng)為一致性【結(jié)果解析】面向?qū)ο蟪绦蛟O(shè)計(jì)方法擁有抽象性、封裝性、繼承性和多態(tài)性等特點(diǎn)。將數(shù)據(jù)結(jié)構(gòu)和算法置于同一個(gè)類(lèi)內(nèi),即為數(shù)據(jù)封裝。同一信息為不一樣的對(duì)象接受時(shí),產(chǎn)生的行為可能是不一樣樣的,這稱(chēng)為多態(tài)性?!?〕下面說(shuō)法正確的選項(xiàng)是〔AD〕。對(duì)象是計(jì)算機(jī)內(nèi)存中的一塊地域,它能夠存放代碼和數(shù)據(jù)對(duì)象實(shí)質(zhì)是功能相對(duì)獨(dú)立的一段程序各個(gè)對(duì)象間的數(shù)據(jù)能夠共享是對(duì)象的一大優(yōu)點(diǎn)在面向?qū)ο蟮某绦蛑校瑢?duì)象之間只能經(jīng)過(guò)信息相互通信【結(jié)果解析】對(duì)象是計(jì)算機(jī)內(nèi)存中的一塊地域。在對(duì)象中,不僅存有數(shù)據(jù),而且存有代碼,使得每個(gè)對(duì)象在功能上相互之間保持相對(duì)獨(dú)立。對(duì)象之間存在各種聯(lián)系,但它們之間只能經(jīng)過(guò)信息進(jìn)行通信。四、判斷題1〕在高級(jí)程序設(shè)計(jì)語(yǔ)言中,一般用類(lèi)來(lái)實(shí)現(xiàn)對(duì)象,類(lèi)是擁有相同屬性和行為的一組對(duì)象的會(huì)集,它是創(chuàng)立對(duì)象的模板。〔√〕2〕C++語(yǔ)言只支持面向?qū)ο蠹夹g(shù)的抽象性、封裝性、繼承性等特點(diǎn),而不支持多態(tài)性?!病痢场窘Y(jié)果解析】C++語(yǔ)言不但支持面向?qū)ο蠹夹g(shù)的抽象性、封裝性、繼承性等特點(diǎn),而且支持多態(tài)性?!?〕面向?qū)ο蟪绦蛟O(shè)計(jì)中的信息應(yīng)該包含“如何做〞的信息?!病痢场窘Y(jié)果解析】信息是面向?qū)ο蟪绦蛟O(shè)計(jì)用來(lái)描述對(duì)象之間通信的體系。向?qū)ο蟆鞍l(fā)送信息〞只需告訴對(duì)象做什么,對(duì)象依照這個(gè)信息決定如何做?!?〕一個(gè)信息只能產(chǎn)生特定的響應(yīng)收效?!病痢场窘Y(jié)果解析】當(dāng)一個(gè)對(duì)象發(fā)出信息時(shí),由于接收對(duì)象的種類(lèi)可能不一樣,因此,它們可能做出不同的反響。這樣,一個(gè)信息能夠產(chǎn)生不一樣的響應(yīng)收效,這種現(xiàn)象叫做多態(tài)?!?〕類(lèi)的設(shè)計(jì)和類(lèi)的繼承體系實(shí)現(xiàn)了軟件模塊的可重用性。〔√〕6〕C++語(yǔ)言和Java語(yǔ)言均不是一個(gè)純粹的面向?qū)ο蟮某绦蛟O(shè)計(jì)的語(yǔ)言?!痢场窘Y(jié)果解析】Java語(yǔ)言是一個(gè)純粹的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言?!?〕學(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ì)方法的重要路子之一?!?〕在C++語(yǔ)言中,類(lèi)是支持?jǐn)?shù)據(jù)封裝的工具?!病獭澄濉⒑?jiǎn)答題1〕什么是構(gòu)造化程序設(shè)計(jì)方法?它有哪些優(yōu)點(diǎn)和缺點(diǎn)?【問(wèn)題解答】構(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)的功能構(gòu)造和相應(yīng)的程序模塊構(gòu)造,有效地將一個(gè)較復(fù)雜的程序系統(tǒng)設(shè)計(jì)任務(wù)分解成好多易于控制和辦理的子任務(wù),便于開(kāi)發(fā)和保護(hù)。隨著程序規(guī)模與復(fù)雜性的增加,這種面向過(guò)程的構(gòu)造化程序設(shè)計(jì)方法存在明顯的不足之處。第一是數(shù)據(jù)安全性問(wèn)題。由于數(shù)據(jù)被每個(gè)模塊所共用,因此是不安全的,一旦出錯(cuò),很難查明原因。其次是可保護(hù)性及可重用性差。它把數(shù)據(jù)構(gòu)造和算法分離為相互獨(dú)立的實(shí)體,一旦數(shù)據(jù)構(gòu)造需要改變時(shí),常常要涉及整個(gè)程序,更正工作量極大并簡(jiǎn)單產(chǎn)生新的錯(cuò)誤。每一種有關(guān)于老問(wèn)題的新方法都要帶來(lái)額外的開(kāi)銷(xiāo)。其他,圖形用戶(hù)界面的應(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)特點(diǎn);行為用程序代碼實(shí)現(xiàn),用來(lái)描述對(duì)象動(dòng)向特點(diǎn)。可見(jiàn),在面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中,對(duì)象是數(shù)據(jù)構(gòu)造和算法的封裝體。對(duì)象之間存在各種聯(lián)系,它們之間經(jīng)過(guò)信息進(jìn)行通信。程序可表示為:程序=對(duì)象+信息在面向?qū)ο蟪绦蛟O(shè)計(jì)中應(yīng)重視于類(lèi)的設(shè)計(jì)。類(lèi)正是面向?qū)ο笳Z(yǔ)言的根本程序模塊,經(jīng)過(guò)類(lèi)的設(shè)計(jì)來(lái)完成實(shí)體的建模任務(wù)。類(lèi)經(jīng)過(guò)一個(gè)簡(jiǎn)單的外面接口與外界發(fā)生關(guān)系。一個(gè)類(lèi)中的操作不會(huì)辦理到另一個(gè)類(lèi)中的數(shù)據(jù),這樣程序模塊的獨(dú)立性、數(shù)據(jù)的安全性就有了優(yōu)異的保障。程序的執(zhí)行取決于事件發(fā)生的序次,由序次產(chǎn)生的信息來(lái)驅(qū)動(dòng)程序的執(zhí)行。不用起初確定信息產(chǎn)生的序次,更吻合客觀世界的實(shí)際。而且面向?qū)ο蟪绦蛟O(shè)計(jì)方法供應(yīng)了軟件重用、解決大問(wèn)題和復(fù)雜問(wèn)題的有效路子,擁有抽象性、封裝性、繼承性和多態(tài)性等特點(diǎn)。3〕構(gòu)造化程序設(shè)計(jì)方法與面向?qū)ο蟪绦蛟O(shè)計(jì)方法在對(duì)待數(shù)據(jù)構(gòu)造和算法關(guān)系上有什么不一樣?【問(wèn)題解答】構(gòu)造化程序設(shè)計(jì)方法中,把數(shù)據(jù)構(gòu)造和算法分別為相互獨(dú)立的實(shí)體;而在面向?qū)ο蟪绦蛟O(shè)計(jì)中,數(shù)據(jù)構(gòu)造和算法封裝在一起,結(jié)合成一個(gè)獨(dú)立的單位,即對(duì)象,并盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié)。對(duì)象的私有屬性只能由這個(gè)對(duì)象的行為來(lái)讀取和更正,與外面的聯(lián)系經(jīng)過(guò)公有行為充當(dāng)外面接口。第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ì)象。換句話(huà)說(shuō)是使新對(duì)象和原對(duì)象共用一個(gè)地址。內(nèi)聯(lián)函數(shù)是使用inline要點(diǎn)字聲明的函數(shù)。重載函數(shù)指在同一個(gè)作用域內(nèi)名字相同而參數(shù)不一樣的函數(shù)。重載函數(shù)平時(shí)用來(lái)對(duì)擁有相似行為而數(shù)據(jù)種類(lèi)或數(shù)據(jù)個(gè)數(shù)不一樣的操作供應(yīng)—個(gè)通用的名稱(chēng)。二、填空題〔1〕一般情況下,用C++語(yǔ)言編寫(xiě)的程序是由函數(shù)加上類(lèi)組成的?!?〕C++有兩種說(shuō)明符號(hào),一種是//,另一種是/*,,*/?!?〕使用C++風(fēng)格的輸入輸出,在程序中必定包含頭文件“iostream〞?!?〕cin是預(yù)定義的標(biāo)準(zhǔn)輸入流對(duì)象,>>是輸入操作符,也稱(chēng)提取運(yùn)算符。〔5〕cout是預(yù)定義的標(biāo)準(zhǔn)輸出流對(duì)象,<<是輸出操作符,也稱(chēng)插入運(yùn)算符。6〕指針的值是它所指向那個(gè)對(duì)象的地址值。指針的種類(lèi)是它所指向?qū)ο蟮姆N類(lèi)。指針的內(nèi)容即是它所指向?qū)ο蟮闹怠?〕C++使用運(yùn)算符&來(lái)定義一個(gè)引用,對(duì)引用的存取都是對(duì)它所引用的對(duì)象的存取。8〕當(dāng)一個(gè)函數(shù)調(diào)用出現(xiàn)在函數(shù)定義從前時(shí),必定先用函數(shù)原型對(duì)函數(shù)進(jìn)行聲明。9〕C++有值傳達(dá)和引用傳達(dá)兩種參數(shù)傳達(dá)體系。10〕使用要點(diǎn)字inline聲明的函數(shù)稱(chēng)為內(nèi)聯(lián)函數(shù)?!?1〕運(yùn)算符
new
用于進(jìn)行動(dòng)向內(nèi)存分配,
運(yùn)算符
delete
用于釋放動(dòng)向分配的內(nèi)存。〔12〕下面程序的輸出結(jié)果為x=10,y=10;x=100,y=100。#include<iostream>usingnamespacestd;intmain〔〕{intx=10,&y=x;cout<<"x="<<x<<",y="<<y<<endl;int*p=&y;*p=100;cout<<"x="<<x<<",y="<<y<<endl;return0;}三、選擇題〔最少選一個(gè),能夠多項(xiàng)選擇〕〔1〕在整型指針變量p2、p3的定義中,錯(cuò)誤的選項(xiàng)是〔A〕。A.intp1,*p2,p3;B.int*p2,p1,*p3;C.intp1,*p2=&p1,*p3;D.int*p2,p1,*p3=&p1;【結(jié)果解析】指針定義的詳盡格式以下所示:<種類(lèi)>*<指針名1>,*<指針名2>,,;〔2〕假設(shè)有定義“doublexx=3.14,*pp=&xx;〞,那么*pp等價(jià)于〔C〕。A.&xxB.*xxC.3.14D.xx【結(jié)果解析】指向xx所在的內(nèi)存單元,這樣*pp和xx等價(jià)?!?〕下面對(duì)引用的描述中〔C〕是錯(cuò)誤的。A.引用是某個(gè)變量或?qū)ο蟮膭e名B.建立引用時(shí),要對(duì)它初始化對(duì)引用初始化能夠使用任意種類(lèi)的變量引用與其代表的對(duì)象擁有相同的地址【結(jié)果解析】所謂引用就是給對(duì)象取一個(gè)別名,使用該別名能夠存取該對(duì)象,化必定使用同種類(lèi)的變量?!?〕函數(shù)沒(méi)有返回值的時(shí)候,應(yīng)入選擇〔A〕的函數(shù)種類(lèi)。A.voidB.intC.不確定D.float
因此對(duì)引用初始〔5〕在函數(shù)的定義格式中,下面各組成局部中,〔D〕是能夠省略的。A.函數(shù)名B.函數(shù)體C.返回值種類(lèi)D.函數(shù)參數(shù)【結(jié)果解析】函數(shù)的定義能夠缺省形式參數(shù),此時(shí)稱(chēng)為無(wú)參函數(shù)。〔6〕對(duì)重載的函數(shù)來(lái)說(shuō),下面表達(dá)不正確的選項(xiàng)是〔
D〕。參數(shù)的種類(lèi)不一樣參數(shù)的序次不一樣參數(shù)的個(gè)數(shù)不一樣參數(shù)的個(gè)數(shù)、種類(lèi)、序次都相同,但函數(shù)的返回值種類(lèi)不一樣【結(jié)果解析】對(duì)重載的函數(shù)來(lái)說(shuō),編譯系統(tǒng)將依照函數(shù)參數(shù)的種類(lèi)和個(gè)數(shù)來(lái)判斷使用哪一個(gè)函數(shù),因此重載函數(shù)參數(shù)的個(gè)數(shù)、種類(lèi)、序次不能夠都相同?!?〕以下有關(guān)設(shè)置函數(shù)參數(shù)默認(rèn)值的描述中,〔D〕是正確的。對(duì)設(shè)置函數(shù)參數(shù)默認(rèn)值的序次沒(méi)有任何規(guī)定函數(shù)擁有一個(gè)參數(shù)時(shí)不能夠設(shè)置默認(rèn)值默認(rèn)參數(shù)要設(shè)置在函數(shù)的原型中,而不能夠設(shè)置在函數(shù)的定義語(yǔ)句中設(shè)置默認(rèn)參數(shù)可使用表達(dá)式,但表達(dá)式中不能用局部變量【結(jié)果解析】在C++中,在函數(shù)原型中能夠?yàn)橐粋€(gè)或多個(gè)參數(shù)指定默認(rèn)值。對(duì)函數(shù)參數(shù)設(shè)置默認(rèn)值要注意以下幾點(diǎn)?!艏僭O(shè)沒(méi)有聲明函數(shù)原型,參數(shù)的默認(rèn)值可在函數(shù)定義的頭部進(jìn)行設(shè)置,否那么必定在函數(shù)原型中進(jìn)行設(shè)置?!粼谝粋€(gè)指定了默認(rèn)值的參數(shù)右邊不能夠出現(xiàn)沒(méi)有指定默認(rèn)值的參數(shù)?!粼O(shè)置默認(rèn)參數(shù)可使用表達(dá)式,但表達(dá)式中不能用局部變量?!?〕下面說(shuō)法正確的選項(xiàng)是〔BC〕。所有的函數(shù)都能夠說(shuō)明為內(nèi)聯(lián)函數(shù)擁有循環(huán)語(yǔ)句、switch語(yǔ)句的函數(shù)不能夠說(shuō)明為內(nèi)聯(lián)函數(shù)使用內(nèi)聯(lián)函數(shù),能夠加快程序執(zhí)行的速度,但會(huì)增加程序代碼的大小使用內(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ù)?!?〕一個(gè)函數(shù)功能不太復(fù)雜,但要求被頻頻調(diào)用,應(yīng)采納〔A〕。A.內(nèi)聯(lián)函數(shù)B.重載函數(shù)C.遞歸函數(shù)D.嵌套函數(shù)〔10〕C++對(duì)C語(yǔ)言做了好多改良,以下描述中使得C語(yǔ)言發(fā)生了質(zhì)變,即從面向過(guò)程變成面向?qū)ο蟮氖恰睤〕。A.增加了一些新的運(yùn)算符B.贊同函數(shù)重載,并贊同設(shè)置默認(rèn)參數(shù)C.規(guī)定函數(shù)說(shuō)明必定用原型D.引進(jìn)了類(lèi)和對(duì)象的見(jiàn)解【結(jié)果解析】面向?qū)ο?對(duì)象+類(lèi)+繼承+信息+多態(tài)四、判斷題〔1〕C++程序中,不得使用沒(méi)有定義或說(shuō)明的變量?!病獭场?〕使用const說(shuō)明常量時(shí),能夠不用指出種類(lèi)?!病痢场窘Y(jié)果解析】若是用const定義的是一個(gè)整型常量,那么種類(lèi)說(shuō)明符int能夠省略?!?〕引用被創(chuàng)立時(shí)能夠用任意變量進(jìn)行初始化?!病痢场窘Y(jié)果解析】對(duì)引用初始化必定使用同種類(lèi)的變量?!?〕一個(gè)返回引用的調(diào)用函數(shù)能夠作為左值?!病獭场?〕函數(shù)能夠沒(méi)有參數(shù),也能夠沒(méi)有返回值。〔√〕6〕沒(méi)有參數(shù)的兩個(gè)函數(shù)是不能夠重載的?!病獭?〕函數(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〕名字空間的用途是什么?【問(wèn)題解答】名字空間用來(lái)防范命名的矛盾。2〕引用有何用途?【問(wèn)題解答】除了獨(dú)立引用外,在C++程序中,引用的主要用途是用作函數(shù)參數(shù)和函數(shù)的返回值。3〕比較值調(diào)用和引用調(diào)用的相同點(diǎn)與不一樣點(diǎn)。【問(wèn)題解答】在值調(diào)用體系中,作為實(shí)參的表達(dá)式的值被復(fù)制到由對(duì)應(yīng)的形參名所表記的一個(gè)對(duì)象中,作為形參的初始值。函數(shù)體對(duì)形參的接見(jiàn)、更正都是在這個(gè)表記對(duì)象上操作的,與實(shí)參沒(méi)關(guān),即數(shù)據(jù)的傳達(dá)是單向的。使用引用作函數(shù)的形參時(shí),調(diào)用函數(shù)的實(shí)參要用變量名。實(shí)參傳達(dá)給形參,相當(dāng)于在被調(diào)用函數(shù)中使用了實(shí)參的別名。于是,在被調(diào)用函數(shù)中對(duì)形參的操作實(shí)質(zhì)是對(duì)實(shí)參的直接操作,即數(shù)據(jù)的傳達(dá)是雙向的。4〕內(nèi)聯(lián)函數(shù)有什么作用?它有哪些特點(diǎn)?【問(wèn)題解答】?jī)?nèi)聯(lián)函數(shù)是使用inline要點(diǎ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)?!暨f歸函數(shù)不能夠定義為內(nèi)聯(lián)函數(shù)。◆內(nèi)聯(lián)函數(shù)一般適合于不含有switch和while等復(fù)雜的構(gòu)造且只有1~5條語(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ù)名必定一致嗎?【問(wèn)題解答】不用一致。所有的參數(shù)是依照地址和種類(lèi)而不是名字來(lái)區(qū)分的。6〕重載函數(shù)時(shí)經(jīng)過(guò)什么來(lái)區(qū)分?【問(wèn)題解答】編譯系統(tǒng)將依照函數(shù)參數(shù)的種類(lèi)和個(gè)數(shù)來(lái)判斷使用哪一個(gè)函數(shù)。六、程序解析題〔寫(xiě)出程序的輸出結(jié)果,并解析結(jié)果〕#include<iostream>usingnamespacestd;intmain〔〕{intnum=50;int&ref=num;ref=ref+10;cout<<"num="<<num<<endl;num=num+40;cout<<"ref="<<ref<<endl;return0;}【輸出結(jié)果】num=60ref=100【問(wèn)題解析】此題主要觀察引用的含義。【結(jié)果解析】程序第必定義一個(gè)int種類(lèi)的對(duì)象num,并給它賦初始值50。此后又定義了一個(gè)int種類(lèi)的引用ref,并將它和num相聯(lián)系。這樣,無(wú)論是對(duì)num還是對(duì)ref進(jìn)行操作,實(shí)質(zhì)上都是對(duì)那個(gè)一開(kāi)始放著50的物理單元的內(nèi)容進(jìn)行操作。七、程序設(shè)計(jì)題寫(xiě)出一個(gè)完滿(mǎn)的C++程序,使用系統(tǒng)函數(shù)pow〔x,y〕計(jì)算xy的值,注意包含頭文件cmath?!締?wèn)題解析】此題主要觀察簡(jiǎn)單的輸入輸出和標(biāo)準(zhǔn)庫(kù)函數(shù)的調(diào)用方法。【解題思路】①由于要用到系統(tǒng)函數(shù)pow〔x,y〕,因此要包含頭文件cmath。②要計(jì)算xy的值,第一必定知道x和y的值。為了程序的通用性,最好經(jīng)過(guò)交互的方式輸入x和y的值?!緟⒄粘绦颉縳t2_1.cpp#include<iostream>#include<cmath>usingnamespacestd;intmain〔〕{floatx,y;cout<<"pleaseinput2floatstox,y:";cin>>x>>y;floatz=pow〔x,y〕;cout<<"pow〔"<<x<<","<<y<<"〕="<<z<<endl;return0;}【輸出結(jié)果】pleaseinput2floatstox,y:3.12pow〔3.1,2〕=9.61第3章類(lèi)與對(duì)象面向?qū)ο蟪绦蛟O(shè)計(jì)教程〔C++語(yǔ)言描述〕題解與課程設(shè)計(jì)指導(dǎo)第3章類(lèi)與對(duì)象一、填空題1〕類(lèi)定義中要點(diǎn)字private、public和protected今后的成員的接見(jiàn)權(quán)限分別是私有、公有和保護(hù)。若是沒(méi)有使用要點(diǎn)字,那么所有成員默認(rèn)定義為private權(quán)限。擁有public接見(jiàn)權(quán)限的數(shù)據(jù)成員才能被不屬于該類(lèi)的函數(shù)所直接接見(jiàn)。〔2〕定義成員函數(shù)時(shí),運(yùn)算符“∷〞是作用域運(yùn)算符,“MyClass∷〞用于說(shuō)明此后的成員函數(shù)是在“MyClass類(lèi)〞中說(shuō)明的。3〕在程序運(yùn)行時(shí),經(jīng)過(guò)為對(duì)象分配內(nèi)存來(lái)創(chuàng)立對(duì)象。在創(chuàng)立對(duì)象時(shí),使用類(lèi)作為樣板,故稱(chēng)對(duì)象為類(lèi)的實(shí)例。4〕假設(shè)Dc是一個(gè)類(lèi),那么執(zhí)行“Dca[10],b〔2〕〞語(yǔ)句時(shí),系統(tǒng)自動(dòng)調(diào)用該類(lèi)構(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)用該類(lèi)構(gòu)造函數(shù)的總次數(shù)為11?!?〕關(guān)于任意一個(gè)類(lèi),析構(gòu)函數(shù)的個(gè)數(shù)最多為1個(gè)。6〕delete運(yùn)算符平時(shí)用于實(shí)現(xiàn)釋放該類(lèi)對(duì)象中指針成員所指向的動(dòng)向儲(chǔ)藏空間的任務(wù)?!?〕C++程序的內(nèi)存格局平時(shí)分為4個(gè)區(qū):數(shù)據(jù)區(qū)、代碼區(qū)、棧區(qū)和堆區(qū)。8〕數(shù)據(jù)定義為全局變量,破壞了數(shù)據(jù)的封裝性;較好的解決方法是將所要共享的數(shù)據(jù)定義為類(lèi)的靜態(tài)成員。9〕靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)可由任意接見(jiàn)權(quán)限贊同的函數(shù)接見(jiàn)?!?0〕友元函數(shù)和友元類(lèi)統(tǒng)稱(chēng)為友元。11〕友元的正確使用能提高程序的效率,但破壞了類(lèi)的封裝性和數(shù)據(jù)的隱蔽性?!?2〕假設(shè)需要把一個(gè)類(lèi)A定義為一個(gè)類(lèi)B的友元類(lèi),那么應(yīng)在類(lèi)B的定義中參加一條語(yǔ)句:friendclassA;。二、選擇題〔最少選一個(gè),能夠多項(xiàng)選擇〕〔1〕以下不屬于類(lèi)接見(jiàn)權(quán)限的是〔B〕。A.publicB.staticC.protectedD.private【結(jié)果解析】類(lèi)的接見(jiàn)權(quán)限有public、protected〔2〕有關(guān)類(lèi)的說(shuō)法不正確的選項(xiàng)是〔
和BC
private〕。
。類(lèi)是一種用戶(hù)自定義的數(shù)據(jù)種類(lèi)只有類(lèi)的成員函數(shù)才能接見(jiàn)類(lèi)的私有數(shù)據(jù)成員在類(lèi)中,如不做權(quán)限說(shuō)明,所有的數(shù)據(jù)成員都是公有的在類(lèi)中,如不做權(quán)限說(shuō)明,所有的數(shù)據(jù)成員都是私有的【結(jié)果解析】類(lèi)是一種用戶(hù)自定義的數(shù)據(jù)種類(lèi),類(lèi)中成員均擁有一種接見(jiàn)權(quán)限。要點(diǎn)字public、protected和private今后的成員的接見(jiàn)權(quán)限分別是公有、保護(hù)和私有的,所有成員默認(rèn)定義為private的。私有成員是被隱蔽的數(shù)據(jù),只有該類(lèi)的成員函數(shù)或友元函數(shù)才能夠接見(jiàn)它?!?〕在類(lèi)定義的外面,能夠被任意函數(shù)接見(jiàn)的成員有〔C〕。A.所有類(lèi)成員B.private或protected的類(lèi)成員C.public的類(lèi)成員D.public或private的類(lèi)成員【結(jié)果解析】類(lèi)是一種用戶(hù)自定義的數(shù)據(jù)種類(lèi),類(lèi)中成員均擁有一種接見(jiàn)權(quán)限。公有成員定義了類(lèi)的外面接口。私有成員是被隱蔽的數(shù)據(jù),只有該類(lèi)的成員函數(shù)或友元函數(shù)才能夠引用它。保護(hù)成員擁有公有成員和私有成員的雙重性質(zhì),能夠被該類(lèi)或派生類(lèi)的成員函數(shù)或友元函數(shù)引用??梢?jiàn)在類(lèi)定義的外面,能夠被任意函數(shù)接見(jiàn)的成員是public的類(lèi)成員。4〕關(guān)于類(lèi)和對(duì)象的說(shuō)法〔C〕是錯(cuò)誤的。A.對(duì)象是類(lèi)的一個(gè)實(shí)例任何一個(gè)對(duì)象只能屬于一個(gè)詳盡的類(lèi)一個(gè)類(lèi)只能有一個(gè)對(duì)象類(lèi)與對(duì)象的關(guān)系和數(shù)據(jù)種類(lèi)與變量的關(guān)系相似【結(jié)果解析】C++語(yǔ)言的類(lèi)就是一種用戶(hù)自己定義的數(shù)據(jù)種類(lèi),類(lèi)和對(duì)象的關(guān)系就相當(dāng)于根本數(shù)據(jù)種類(lèi)與它的變量的關(guān)系,因此任何一個(gè)對(duì)象只能屬于一個(gè)詳盡的類(lèi),但一個(gè)類(lèi)能夠有多個(gè)對(duì)象。5〕設(shè)MClass是一個(gè)類(lèi),dd是它的一個(gè)對(duì)象,pp是指向dd的指針,cc是dd的引用,那么對(duì)成員的接見(jiàn),對(duì)象dd能夠經(jīng)過(guò)〔B〕進(jìn)行,指針pp能夠經(jīng)過(guò)〔D〕進(jìn)行,引用cc能夠經(jīng)過(guò)〔B〕進(jìn)行。A.∷B..C.&D.〔6〕關(guān)于成員函數(shù)的說(shuō)法中不正確的選項(xiàng)是〔C〕。A.成員函數(shù)能夠無(wú)返回值B.成員函數(shù)能夠重載C.成員函數(shù)必然是內(nèi)聯(lián)函數(shù)D.成員函數(shù)能夠設(shè)定參數(shù)的默認(rèn)值
->【結(jié)果解析】與一般函數(shù)不一樣的是,成員函數(shù)是屬于某個(gè)類(lèi)的。成員函數(shù)的實(shí)現(xiàn),體內(nèi),也能夠放在類(lèi)體外。在類(lèi)體外實(shí)現(xiàn)的成員函數(shù)不再是內(nèi)聯(lián)函數(shù)?!?〕下面對(duì)構(gòu)造函數(shù)的不正確描述是〔B〕。
能夠放在類(lèi)系統(tǒng)能夠供應(yīng)默認(rèn)的構(gòu)造函數(shù)構(gòu)造函數(shù)能夠有參數(shù),因此也能夠有返回值構(gòu)造函數(shù)能夠重載構(gòu)造函數(shù)能夠設(shè)置默認(rèn)參數(shù)【結(jié)果解析】構(gòu)造函數(shù)不能夠指定返回種類(lèi),即即是void種類(lèi)也不能夠夠,自然不能能有返回值。8〕假設(shè)A是一個(gè)類(lèi),那么執(zhí)行語(yǔ)句“Aa,b〔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)能夠供應(yīng)默認(rèn)的析構(gòu)函數(shù)析構(gòu)函數(shù)必定由用戶(hù)定義析構(gòu)函數(shù)沒(méi)有參數(shù)析構(gòu)函數(shù)能夠設(shè)置默認(rèn)參數(shù)【結(jié)果解析】析構(gòu)函數(shù)的作用是在對(duì)象消失時(shí)執(zhí)行一項(xiàng)清理任務(wù)。若是一個(gè)類(lèi)中沒(méi)有定義析構(gòu)函數(shù),系統(tǒng)將自動(dòng)生成一個(gè)默認(rèn)析構(gòu)函數(shù)。析構(gòu)函數(shù)沒(méi)有參數(shù),自然不能能設(shè)置默認(rèn)參數(shù)?!?0〕類(lèi)的析構(gòu)函數(shù)是〔D〕時(shí)被調(diào)用的。A.類(lèi)創(chuàng)立B.創(chuàng)立對(duì)象C.引用對(duì)象D.釋放對(duì)象〔11〕創(chuàng)立一個(gè)類(lèi)的對(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ù)〔12〕平時(shí)拷貝構(gòu)造函數(shù)的參數(shù)是〔C〕。A.某個(gè)對(duì)象名B.某個(gè)對(duì)象的成員名C.某個(gè)對(duì)象的引用名D.某個(gè)對(duì)象的指針名〔13〕關(guān)于this指針的說(shuō)法正確的選項(xiàng)是〔B〕。A.this指針必定顯式說(shuō)明B.當(dāng)創(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指針,并經(jīng)過(guò)該指針來(lái)辦理對(duì)象。〔14〕以下關(guān)于子對(duì)象的描述中,〔B〕是錯(cuò)誤的。A.子對(duì)象是類(lèi)的一種數(shù)據(jù)成員,它是另一個(gè)類(lèi)的對(duì)象B.子對(duì)象能夠是自己類(lèi)的對(duì)象對(duì)子對(duì)象的初始化要包含在該類(lèi)的構(gòu)造函數(shù)中一個(gè)類(lèi)中能含有多個(gè)子對(duì)象作其成員【結(jié)果解析】子對(duì)象不能夠夠是自己類(lèi)的對(duì)象?!?5〕對(duì)new運(yùn)算符的以下描述中,〔B〕是錯(cuò)誤的。A.它能夠動(dòng)向創(chuàng)立對(duì)象和對(duì)象數(shù)組用它創(chuàng)立對(duì)象數(shù)組時(shí)必定指定初始值用它創(chuàng)立對(duì)象時(shí)要調(diào)用構(gòu)造函數(shù)用它創(chuàng)立的對(duì)象數(shù)組能夠使用運(yùn)算符delete來(lái)一次釋放【結(jié)果解析】使用運(yùn)算符new創(chuàng)立對(duì)象數(shù)組的格式以下:new<種類(lèi)說(shuō)明符>[<算術(shù)表達(dá)式>]其中,<算術(shù)表達(dá)式>給出數(shù)組的大小,后邊不能夠再跟構(gòu)造函數(shù)參數(shù),因此用它創(chuàng)立對(duì)象數(shù)組時(shí)不能夠指定初始值?!?6〕對(duì)delete運(yùn)算符的以下描述中,〔D〕是錯(cuò)誤的。A.用它能夠釋放用new運(yùn)算符創(chuàng)立的對(duì)象和對(duì)象數(shù)組B.用它釋放一個(gè)對(duì)象時(shí),它作用于一個(gè)new所返回的指針用它釋放一個(gè)對(duì)象數(shù)組時(shí),它作用的指針名前須加下標(biāo)運(yùn)算符[]用它可一次釋放用new運(yùn)算符創(chuàng)立的多個(gè)對(duì)象【結(jié)果解析】用delete一次只能釋放用new創(chuàng)立的1個(gè)對(duì)象,但可釋放一個(gè)對(duì)象數(shù)組?!?7〕關(guān)于靜態(tài)數(shù)據(jù)成員,下面表達(dá)不正確的選項(xiàng)是〔C〕。使用靜態(tài)數(shù)據(jù)成員,實(shí)際上是為了除掉全局變量能夠使用“對(duì)象名.靜態(tài)成員〞也許“類(lèi)名∷靜態(tài)成員〞來(lái)接見(jiàn)靜態(tài)數(shù)據(jù)成員靜態(tài)數(shù)據(jù)成員只幸虧靜態(tài)成員函數(shù)中引用所有對(duì)象的靜態(tài)數(shù)據(jù)成員占用同一內(nèi)存單元【結(jié)果解析】靜態(tài)數(shù)據(jù)成員能夠在靜態(tài)成員函數(shù)中引用,也能夠在非靜態(tài)成員函數(shù)中引用?!?8〕對(duì)靜態(tài)數(shù)據(jù)成員的不正確描述是〔CD〕。A.靜態(tài)成員不屬于對(duì)象,是類(lèi)的共享成員靜態(tài)數(shù)據(jù)成員要在類(lèi)外定義和初始化C.調(diào)用靜態(tài)成員函數(shù)時(shí)要經(jīng)過(guò)類(lèi)或?qū)ο蠹せ睿虼遂o態(tài)成員函數(shù)擁有this指針D.只有靜態(tài)成員函數(shù)能夠操作靜態(tài)數(shù)據(jù)成員【結(jié)果解析】this指針是一個(gè)局部量,局部于某個(gè)對(duì)象,而靜態(tài)成員函數(shù)是屬于整個(gè)類(lèi)而不是某個(gè)對(duì)象,它沒(méi)有this指針。靜態(tài)成員函數(shù)和非靜態(tài)成員函數(shù)均可操作靜態(tài)數(shù)據(jù)成員?!?9〕下面的選項(xiàng)中,靜態(tài)成員函數(shù)不能夠直接接見(jiàn)的是〔D〕。A.靜態(tài)數(shù)據(jù)成員B.靜態(tài)成員函數(shù)C.類(lèi)以外的函數(shù)和數(shù)據(jù)D.非靜態(tài)數(shù)據(jù)成員【結(jié)果解析】由于靜態(tài)成員函數(shù)沒(méi)有this指針,它只能直接接見(jiàn)該類(lèi)的靜態(tài)數(shù)據(jù)成員、靜態(tài)成員函數(shù)和類(lèi)以外的函數(shù)和數(shù)據(jù),接見(jiàn)類(lèi)中的非靜態(tài)數(shù)據(jù)成員必定經(jīng)過(guò)參數(shù)傳達(dá)方式獲得對(duì)象名,此后經(jīng)過(guò)對(duì)象名來(lái)接見(jiàn)。〔20〕在類(lèi)的定義中,引入友元的原因是〔A〕。A.提高效率B.深入使用類(lèi)的封裝性C.提高程序的可讀性D.提高數(shù)據(jù)的隱蔽性【結(jié)果解析】友元的作用主若是為了提高效率和方便編程,但友元破壞了類(lèi)的封裝性和隱蔽性,使用時(shí)要權(quán)衡利害。〔21〕友元類(lèi)的聲明方法是〔A〕。A.friendclass<類(lèi)名>;B.youyuanclass<C.classfriend<類(lèi)名>;D.friendsclass<22〕下面對(duì)友元的錯(cuò)誤描述是〔D〕。A.要點(diǎn)字friend用于聲明友元一個(gè)類(lèi)中的成員函數(shù)能夠是另一個(gè)類(lèi)的友元友元函數(shù)接見(jiàn)對(duì)象的成員不受接見(jiàn)特點(diǎn)影響友元函數(shù)經(jīng)過(guò)this指針接見(jiàn)對(duì)象成員【結(jié)果解析】友元函數(shù)是一個(gè)放在類(lèi)中的一般函數(shù),它沒(méi)有this指針。〔23〕下面選項(xiàng)中,〔C〕不是類(lèi)的成員函數(shù)。
類(lèi)名>;類(lèi)名>;A.構(gòu)造函數(shù)B.析構(gòu)函數(shù)C.友元函數(shù)D.拷貝構(gòu)造函數(shù)三、簡(jiǎn)答題1〕類(lèi)與對(duì)象有什么關(guān)系?【問(wèn)題解答】類(lèi)是一種用戶(hù)自己定義的數(shù)據(jù)種類(lèi),和其他數(shù)據(jù)種類(lèi)不一樣的是,組成這種種類(lèi)的不但能夠有數(shù)據(jù),而且能夠有對(duì)數(shù)據(jù)進(jìn)行操作的函數(shù)。程序員能夠使用這個(gè)新種類(lèi)在程序中聲明新的變量,擁有類(lèi)種類(lèi)的變量稱(chēng)為對(duì)象。創(chuàng)立對(duì)象時(shí),類(lèi)被用做樣板,對(duì)象稱(chēng)為類(lèi)的實(shí)例。〔2〕類(lèi)定義的一般形式是什么?其成員有哪幾種接見(jiàn)權(quán)限?【問(wèn)題解答】定義類(lèi)一般形式為:class類(lèi)名{public:<公有數(shù)據(jù)和函數(shù)>protected:<保護(hù)數(shù)據(jù)和函數(shù)>private:<私有數(shù)據(jù)和函數(shù)>};接見(jiàn)權(quán)限共有3種:分別是公有〔public〕、保護(hù)〔protected〕和私有〔private〕。3〕類(lèi)的實(shí)例化是指創(chuàng)立類(lèi)的對(duì)象還是定義類(lèi)?【問(wèn)題解答】指創(chuàng)立類(lèi)的對(duì)象?!?〕什么是this指針?它的主要作用是什么?【問(wèn)題解答】this指針是C++語(yǔ)言為成員函數(shù)供應(yīng)的一個(gè)隱含對(duì)象指針,它不能夠被顯式聲明。this指針是一個(gè)局部量,局部于某個(gè)對(duì)象。不一樣的對(duì)象調(diào)用同一個(gè)成員函數(shù)時(shí),編譯器依照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í)把引用參數(shù)聲明為const參數(shù)。在以下3種情況下,拷貝構(gòu)造函數(shù)都會(huì)被自動(dòng)調(diào)用:◆當(dāng)用類(lèi)的一個(gè)對(duì)象去初始化該類(lèi)的另一個(gè)對(duì)象時(shí);◆當(dāng)函數(shù)的形參是類(lèi)的對(duì)象,進(jìn)行形參和實(shí)參結(jié)合時(shí);◆當(dāng)函數(shù)的返回值是類(lèi)的對(duì)象,函數(shù)執(zhí)行完成返回調(diào)用者時(shí)。四、程序解析題〔寫(xiě)出程序的輸出結(jié)果,并解析結(jié)果〕1〕#include<iostream>usingnamespacestd;classTest{private:intnum;public:Test〔〕;//默認(rèn)構(gòu)造函數(shù)Test〔intn〕;//帶一個(gè)參數(shù)構(gòu)造函數(shù)};Test∷Test〔〕{cout<<"Initdefa"<<endl;num=0;}Test∷Test〔intn〕{cout<<"Init"<<""<<n<<endl;num=n;}intmain〔〕{Testx[2];//語(yǔ)句1Testy〔15〕;//語(yǔ)句2return0;}【輸出結(jié)果】InitdefaInitdefaInit15【問(wèn)題解析】此題主要觀察構(gòu)造函數(shù)的調(diào)用機(jī)會(huì)和構(gòu)造函數(shù)的般配問(wèn)題。【要點(diǎn)提示】構(gòu)造函數(shù)在創(chuàng)立對(duì)象時(shí)被自動(dòng)調(diào)用,詳盡調(diào)用哪個(gè)構(gòu)造函數(shù)將由編譯系統(tǒng)依照重載函數(shù)的般配原那么來(lái)確定?!窘Y(jié)果解析】①程序聲了然2個(gè)對(duì)象x和y,類(lèi)中有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>usingnamespacestd;classXx{private:intnum;public:Xx〔intx〕{num=x;}//構(gòu)造函數(shù)~Xx〔〕{cout<<"dst"<<num<<endl;}//析構(gòu)函數(shù)};intmain〔〕{Xxw〔5〕;//語(yǔ)句1cout<<"Exitmain"<<endl;//語(yǔ)句2return0;}【輸出結(jié)果】Exitmaindst5【問(wèn)題解析】此題主要觀察析構(gòu)函數(shù)的調(diào)用機(jī)會(huì)?!疽c(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.10中的Whole類(lèi)以下更正,其他局部不變,寫(xiě)出輸出結(jié)果。classWhole{public:Whole〔inti〕;//Whole的有參構(gòu)造函數(shù)Whole〔〕{};//Whole的無(wú)參構(gòu)造函數(shù)~Whole〔〕;//Whole的析構(gòu)函數(shù)private:Partp1;//子對(duì)象1Partp2;//子對(duì)象2Partp3;//子對(duì)象3};Who
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 住宅認(rèn)購(gòu)定金合同范本
- 倉(cāng)儲(chǔ)保管填寫(xiě)合同范本
- 2025年四川貨運(yùn)從業(yè)資格證考試的技巧
- 一房三賣(mài)買(mǎi)賣(mài)合同范本
- 停息掛賬律師委托合同范本
- 個(gè)人外匯貸款合同范本
- 助資合同范本
- 個(gè)人買(mǎi)房購(gòu)房合同范本
- 公司稅貸合同范本
- 個(gè)人店面整體裝修合同范本
- 2025年湖南城建職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)及答案一套
- 教科版科學(xué)三下開(kāi)學(xué)第一課《科學(xué)家這樣做-童第周》
- 2025年廣州市黃埔區(qū)文沖街招聘“村改居”社區(qū)治安聯(lián)防隊(duì)員36人歷年高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 國(guó)家電網(wǎng)新聞宣傳與企業(yè)文化管理專(zhuān)責(zé)考試題及答案
- 土建類(lèi)專(zhuān)職安全生產(chǎn)管理人員練習(xí)題+參考答案
- 中國(guó)新能源汽車(chē):2024年總結(jié)與2025年趨勢(shì)報(bào)告-電動(dòng)汽車(chē)觀察家
- 2024年江蘇省衛(wèi)生健康委員會(huì)所屬事業(yè)單位招聘筆試真題
- 廉潔知識(shí)培訓(xùn)課件
- 分布式光伏發(fā)電開(kāi)發(fā)建設(shè)管理辦法2025
- 《科幻小說(shuō)賞析與寫(xiě)作》 課件 -第六章 “外星文明”的善意與惡行-《安德的游戲》
- 《我國(guó)的文化安全》課件
評(píng)論
0/150
提交評(píng)論