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

admin2019-04-18  41

问题 使用VC6打开考生文件夹下的源程序文件modi3.clap。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能:
(1)定义类CPoint的带有两个参数的构造函数,两个变量为x、y都为int型,且缺省值为0。请在注释∥********1********后添加适当的语句。
(2)完成类CRectangle的构造函数,给pointl和pohat2进行赋值。请在注释∥********2********后添加适当的语句。
(3)完成类CRectangle的函数GetArea(),用来计算矩形面积。请在注释∥********3********后添加适当的语句。
(4)定义CRectanglc类,拥有两个私有对象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*he ight)?
width*height:  一width*height;
    }
    int GetGirth()
    {
    int width=abs(pointl.
GetX()一point2.GetX());
    int height=abs(pointl.
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 Dointl:

解析 (1)在第1个标识下添加构造函数定义,该构造带有两个参数X和Y的构造函数,X、Y都为int型,缺省值为0,因此第1个标识下应添加CPoint(int i=0,int i=0)。
(2)第2个标识下通过Cpoint类的构造函数来完成Crectangle类成员的初始化,在函数体内没有任何函数语句,因此其初始化过程是在初始化列表里完成的,通过调用基类的构造函数来实现两个私有对象pointl和point2的初始化,故第2个标识下应添加CRectangle(int top,int left,int right,intbottom):point 1(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 point 1;”0
转载请注明原文地址:https://kaotiyun.com/show/QdAp777K
0

最新回复(0)