三、綜合應(yīng)用題
使用VC6打開(kāi)考生文件夾下的工程kt7_3,此工程包含一個(gè)源程序文件kt7_3.cpp,其中含有一個(gè)類(lèi)Circle的定義,但該類(lèi)的定義并不完整。請(qǐng)按要求完成下列操作,將類(lèi)Circle的定義補(bǔ)充完整。
(1)為類(lèi)Circle增加一個(gè)構(gòu)造函數(shù),該函數(shù)有一個(gè)參數(shù),并在構(gòu)造時(shí)將該參數(shù)值賦給成員radius。將該函數(shù)實(shí)現(xiàn)為一個(gè)非內(nèi)聯(lián)函數(shù),并且使用參數(shù)列表的方式將類(lèi)成員賦值。請(qǐng)?jiān)谧⑨尅?/**1**”之后添加適當(dāng)?shù)恼Z(yǔ)句。
(2)為類(lèi)Circle增加一個(gè)成員函數(shù)print(),使得可以輸出有關(guān)圓的信息,比如下列程序
Circlec;
c.SetRadius(5);
c.Print();
將輸出:Thecirclehasradiusof5!
請(qǐng)?jiān)谧⑨尅?/**2**”之后添加適當(dāng)?shù)恼Z(yǔ)句。
(3)完成友元函數(shù)voidCompareR(Circle*c1,Circle*c2)的定義,在屏幕中輸出c1與c2比較radius大小結(jié)果,要求使用if-else結(jié)構(gòu)完成。請(qǐng)?jiān)谧⑨尅?/**3**”之后添加適當(dāng)?shù)恼Z(yǔ)句。
輸出結(jié)果如下:
Thecirclehasradusof5!
Thecirclehasradiusof10!
c1 注意:除在指定位置添加語(yǔ)句之外,請(qǐng)不要改動(dòng)程序中的其他內(nèi)容。 源程序文件kt7_3.cpp清單如下: #include classCircle{ public: Circle():radius(5){} //**1** voidSetRadius(intr){radius=r;} intGetRadius(){returnradius;} //**2** friendvoidCompareR(Circle*c1,Circle*c2); private: intradius;}; voidCompareR(Circle*c1,Circle*c2) {//**3** cout<<"c1>c2"< else if((c1->GetRadius())==(c2->GetRadius())) cout<<"c1=c2"< else if((c1->GetRadius())<(c2->GetRadius())) cout<<"c1 voidmain() {Circlec1; c1.SetRadius(5); c1.Print(); Circlec2(10); c2.Print(); CompareR(&c1,&c2);} 【參考答案】 (1)Circle(int rad):radius(rad){} (2)void Print(){cout<<"The circle has radius of "< (3)if ((c1->GetRadius())>(c2->GetRadius())) 【試題解析】 本題考查成員函數(shù)的定義與實(shí)現(xiàn),友元函數(shù),if分支語(yǔ)句等知識(shí)點(diǎn)。友元函數(shù)的類(lèi)體外的定義與一般函數(shù)一樣,其中if-else的使用,else總是與其最近的那個(gè)if配對(duì)使用的,書(shū)寫(xiě)時(shí)最好使用縮進(jìn)格式,將配對(duì)的if-else對(duì)齊,以免出錯(cuò)。 編輯推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |