c ii程序習(xí)題及其解答

ID:11691710

大小:267.50 KB

頁(yè)數(shù):35頁(yè)

時(shí)間:2018-07-13

c  ii程序習(xí)題及其解答_第1頁(yè)
c  ii程序習(xí)題及其解答_第2頁(yè)
c  ii程序習(xí)題及其解答_第3頁(yè)
c  ii程序習(xí)題及其解答_第4頁(yè)
c  ii程序習(xí)題及其解答_第5頁(yè)
資源描述:

《c ii程序習(xí)題及其解答》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、6.3思考題1.結(jié)構(gòu)和類有什么區(qū)別?如果把程序中定義結(jié)構(gòu)的關(guān)鍵字struct直接改成class,會(huì)有什么問(wèn)題?用教材上的一個(gè)例程試一試,想一想做什么修改能使程序正確運(yùn)行?【解答】結(jié)構(gòu)是數(shù)據(jù)的封裝,類是數(shù)據(jù)和操作的封裝??梢园呀Y(jié)構(gòu)看成是類的特例。結(jié)構(gòu)和類都可以用關(guān)鍵字struct或class定義。區(qū)別是,struct定義的結(jié)構(gòu)或類的全部成員都是公有的,用class定義的結(jié)構(gòu)或類不做聲明的成員是私有的。若把struct改成class,只需要把全部成員定義為public就可以了。2.有說(shuō)明classA{inta;doublex;public:funMemb

2、er();};Aa1,a2,a3;編譯器為對(duì)象a1、a2和a3開(kāi)辟了什么內(nèi)存空間?它們有各自的funMember函數(shù)的副本嗎?C++通過(guò)什么機(jī)制調(diào)用類的成員函數(shù)?【解答】開(kāi)辟的存儲(chǔ)空間有a1.a,a1.x,a2.a,a2.x,a3.a,a3.x。各對(duì)象沒(méi)有funMember函數(shù)的副本,C++通過(guò)this指針調(diào)用成員函數(shù)。3.C++提供了默認(rèn)版本的構(gòu)造函數(shù),為什么還需要用戶自定義構(gòu)造函數(shù)?編寫(xiě)一個(gè)驗(yàn)證程序,說(shuō)明自定義構(gòu)造函數(shù)的必要性?!窘獯稹款惖哪J(rèn)構(gòu)造函數(shù)可以建立基本類型數(shù)據(jù)成員的存儲(chǔ)空間?;谝韵聝蓚€(gè)原因,需要用戶定義構(gòu)造函數(shù):(1)對(duì)數(shù)據(jù)成員的值

3、做指定初始化;(2)類的數(shù)據(jù)是由指針管理的堆。程序略。4.試從定義方式、訪問(wèn)方式、存儲(chǔ)性質(zhì)和作用域分析類的一般數(shù)據(jù)成員和靜態(tài)數(shù)據(jù)成員的區(qū)別,并編寫(xiě)一個(gè)簡(jiǎn)單程序驗(yàn)證它?!窘獯稹慷x方式訪問(wèn)方式存儲(chǔ)性質(zhì)作用域一般數(shù)據(jù)成員類中定義對(duì)象.數(shù)據(jù)成員局部數(shù)據(jù)由訪問(wèn)屬性public,protected,private決定靜態(tài)數(shù)據(jù)成員類中聲明,類外定義對(duì)象.數(shù)據(jù)成員類::數(shù)據(jù)成員全局?jǐn)?shù)據(jù)程序略。355.試從定義方式、調(diào)用方式分析常成員函數(shù)、靜態(tài)成員函數(shù)和友員函數(shù)的區(qū)別??疾旖滩牡睦?-15,若classGoods的指針域Goods*next;被聲明為私有(priva

4、te)成員,程序會(huì)出現(xiàn)什么錯(cuò)誤?做什么最小修改能使程序正確運(yùn)行?請(qǐng)你試一試?!窘獯稹慷x方式調(diào)用方式常成員函數(shù)函數(shù)原型以const做后綴this指針被約束為指向常量的常指針與一般成員函數(shù)調(diào)用形式相同對(duì)數(shù)據(jù)成員只讀靜態(tài)成員函數(shù)以static做函數(shù)原型前綴沒(méi)有this指針通過(guò)類或?qū)ο笳{(diào)用用于操作靜態(tài)數(shù)據(jù)成員友員函數(shù)以friend做函數(shù)原型前綴沒(méi)有this指針通過(guò)參數(shù)訪問(wèn)對(duì)象可以訪問(wèn)對(duì)象的不同屬性的成員在例6-15中,若把next聲明為私有數(shù)據(jù)成員,只須把有關(guān)指針操作的函數(shù)定義為友員函數(shù)就可以了:friendvoidpurchase(Goods*&f,Go

5、ods*&r,intw);friendvoidsale(Goods*&f,Goods*&r);6.設(shè)有classM{inta;};classN{Mm;intb;voidfun(){/*……*/}};intmain(){Nn;N*p=&n;/*……*/}描述在N::fun中如何訪問(wèn)M類的數(shù)據(jù)成員a;在main函數(shù)中又如何訪問(wèn)對(duì)象n的全部數(shù)據(jù)成員?【解答】在N::fun中訪問(wèn)M類的數(shù)據(jù)成員a的形式是:m.a在main函數(shù)中訪問(wèn)M類的數(shù)據(jù)成員的形式是:n.b,n.m.a6.4編程題1.定義一個(gè)Book(圖書(shū))類,在該類定義中包括數(shù)據(jù)成員:bookname(

6、書(shū)名)、price(價(jià)格)和number(存書(shū)數(shù)量);成員函數(shù):display()顯示圖書(shū)的情況;borrow()將存書(shū)數(shù)量減1,并顯示當(dāng)前存書(shū)數(shù)量;restore()將存書(shū)數(shù)量加1,并顯示當(dāng)前存書(shū)數(shù)量。在main函數(shù)中,要求創(chuàng)建某一種圖書(shū)對(duì)象,并對(duì)該圖書(shū)進(jìn)行簡(jiǎn)單的顯示、借閱和歸還管理?!窘獯稹?includeusingnamespacestd;classBook{public:voidsetBook(char*,double,int);voidborrow();voidrestore();voiddisplay();privat

7、e:35charbookname[40];doubleprice;intnumber;};//在類外定義Book類的成員函數(shù)voidBook::setBook(char*name,doublepri,intnum){strcpy(bookname,name);price=pri;number=num;}voidBook::borrow(){if(number==0){cout<<"已沒(méi)存書(shū),退出!"<

8、estore(){number=number+1;cout<<"還一次,現(xiàn)存書(shū)量為:"<

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。
关闭