使用VC++6.0打开考生文件夹下的源程序文件3.cpp,其中定义的类不完整,按要求完成下列操作,将类的定义补充完整。 (1)定义类CPoint的带有两个参数的构造函数,两个变量为x、y,都为int型,且缺省值为0。请在注释1后添加适当的语句。

admin2013-11-15  26

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

选项

答案(1)应添加“CPoint(int i=0,int j=0)”。 (2)应添加“CRectangle(int top,int left,int right,int bottom):point1(top,left),point2(right,bottom)”。 (3)应添加“int width=point1.GetX()-point2.GetX();”。 (4)应添加“CPoint point1;”。

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

最新回复(0)