使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: (1)定义类CPoint的带有两个参数的构造函数,两个变量为x、y都为int型,且缺省值为0。请在注释//***

admin2017-03-22  35

问题 使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能:
    (1)定义类CPoint的带有两个参数的构造函数,两个变量为x、y都为int型,且缺省值为0。请在注释//********1********后添加适当的语句。
    (2)完成类CRectangle的构造函数,给pointl和point2进行赋值。请在注释//********2********后添加适当的语句。
    (3)完成类CRectangle的函数GetArea0,用来计算矩形面积。请在注释//********3********后添加适当的语句。
    (4)定义CRectangle类,拥有两个私有对象pointl和point2,类型为Point,请在注释//********4********后添加适当的语句。
    注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include
#include
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=pointl.GetY()
-point2.GetY();
    return(width*height)?
width*height:一width*height;
    }
    int GetGirth()
    {
    int width=abs(point1.
GetX()-point2.GetX());
    int height=abs(point1.
GetY()-point2.GetY());
    return(2*(width+height));
    }
private:
    //********4********
    CPoint point2;
};
int main()
{
    CRectangle rect(5,2,13,18);
    cout<    cout<    return 0;
}

选项

答案(1)添加语句:CPoint(int i=0,int j=0) (2)添加语句:CRectangle(int top,int left,int,right,int bottom):pointl(top,left),point2 (right,bottom) (3)添加语句:int width=pointl.GetX() -point2.GetX(); (4)添加语句:CPoint pointl;

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

最新回复(0)