三、綜合應(yīng)用題
使用VC6打開考生文件夾下的工程kt20_3。此工程包含一個(gè)kt20_3.cpp,其中定義了類CVector,,但該類的定義并不完整。請(qǐng)按要求完成下列操作,將程序補(bǔ)充完整。
(1)完成類CVector構(gòu)造函數(shù)的定義,把傳入的int型參數(shù)a和b分別賦值給類的成員變量x和y。請(qǐng)?jiān)谧⑨尅?/**1**”之后添加適當(dāng)?shù)恼Z句。
(2)完成類CVector的"+"運(yùn)算符重載函數(shù)的定義,使Cvector類的兩個(gè)對(duì)象相加時(shí)可以直接使用符號(hào)"+",并且結(jié)果仍然為類Cvector的對(duì)象,請(qǐng)?jiān)谧⑨尅?/**2**”之后添加適當(dāng)?shù)恼Z句。
(3)在主函數(shù)中添加適當(dāng)?shù)恼Z句,把類Cvector的對(duì)象a和b相加,并且把結(jié)果保存在對(duì)象c中,最后以"x,y"的形式輸出在屏幕上,請(qǐng)?jiān)谧⑨尅?/**3**”之后添加適當(dāng)?shù)恼Z句。
源程序文件kt20_3.cpp清單如下:
#include
classCVector
{ public:
intx,y;
CVector(){};
CVector(int,int);
CVectoroperator+(CVector); };
CVector::CVector(inta,intb)
{ //**1** }
CVectorCVector::operator+(CVectorparam)
{ //**2**
temp.y=y+param.y;
return(temp); }
intmain()
{ CVectora(3,1);
CVectorb(1,2);
CVectorc;
//**3**
return0; }
【參考答案】
(1)x = a;
y = b;
(2)CVector temp;
temp.x = x + param.x;
(3)c = a + b;
cout << c.x << "," << c.y;
【試題解析】
主要考查對(duì)類的數(shù)據(jù)成員賦值與定義重載為成員函數(shù)的運(yùn)算符函數(shù)的掌握,其中(2)就是運(yùn)算符函數(shù)的實(shí)現(xiàn),實(shí)際上就是通過已有的函數(shù)和符號(hào)實(shí)現(xiàn)復(fù)雜的運(yùn)算功能,并最終返回該類的對(duì)象,注意最后的返回值必須是對(duì)象才能滿足要求,(4)中使用對(duì)象調(diào)用類的數(shù)據(jù)成員用符號(hào)“.”。
相關(guān)推薦:2010年9月計(jì)算機(jī)等級(jí)考試沖刺備考指導(dǎo)專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |