问题 填空题

使用VC++6.0打开考生文件夹下的源程序文件3.cpp,其中定义的类不完整,按要求完成下列操作,将类的定义补充完整。
(1)定义类CPoint的带有两个参数的构造函数,两个变量为x、y,都为int型,且缺省值为0。请在注释1后添加适当的语句。
(2)完成类CRectangle的构造函数,给point1和point2赋值。请在注释2后添加适当的语句。
(3)完成类CRectangle的函数GetArea,用来计算矩形面积。请在注释3后添加适当的语句。
(4)定义CRectangle类,它拥有两个私有对象point1和point2,类型为Point,请在注释4后添加适当的语句。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
试题程序:
#include<iostream.h>
#include<cmath>
class CPoint

public:
//********1********
x=1;
y=j;
int GetX()

return x;

int GetY()

return y;

private:
int x,y;

class CReetangle

public:
//********2********


mt GetArea()

//********3********
int height=point1.GetY()-point2.GetY();
return(width *height)width *height:-width* height;

private:
//********4********
CPoint point2;

int main()

CRectangle rect(0,0,1,1);
cout<<rect.GetArea()<<end1;
return 0;

答案

参考答案:应添加“CPoint point1;”。

解析: 本题中在第1处添加构造函数定义,该构造带有两个参数x和y的构造函数,x、y都为int型,默认值为0,因此第1处应添加“CPoint(int i=0,int j=0)”。第2处通过Cpoint类的构造函数来完成Crectangle类成员的初始化,在函数体内没有任何函数语句,因此其初始化过程是在初始化列表里完成的,通过调用基类的构造函数来实现两个私有对象point1和point2的初始化,故第2处应添加“CRectangle(int top,int left,int right,int bottom):point1(top,left),point2(right,bottom)”。面积为矩形长宽的乘积,因此先计算矩形的长和宽,可由两个Cpoint对象的x坐标相减计算得到,CPoint对象的x坐标为私有成员,只能通过公有接口函数调用获得,因此第3处的语句为“int width=point1.GetX()-point2.GetX();”。Crectangle类的成员变量为两个Cpoint对象成员point1和point2,在第4处补充point1的定义,故第4处应添加语句“CPoint point1;”。

单项选择题 A1/A2型题
多项选择题