应用题   请使用VC6或使用【答题】菜单打开proj3下的工程文件proj3,此工程中包含一个源程序文件proj3.cpp,其中定义了用于表示平面坐标系中的点的类MyPoint和表示矩形的类MyRectangle;程序应当显示:
    (0,2)(2,2)(2,0)(0,0)4
    但程序中有缺失部分,请按照以下提示,把缺失部分补充完整:
    (1)在“// **1** ****found****”的下方是构造函数的定义,它用参数提供的左上角和右下角的坐标对up_left和down_right进行初始化。
    (2)在“// **2** ****found****”的下方是成员函数getDownLeft的定义中的一条语句。函数getDownLeft返回用MyPoint对象表示的矩形的左下角。
    (3)在“// **3** ****found****”的下方是成员函数area的定义,它返回矩形的面积。
    注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“****found*****”。
    // proj3.cpp
    #include <iostream>
    using namespace std;
    class MyPoint{  //表示平面坐标系中的点的类
    double x;
    double y;
    public:
    MyPoint (double x, double y) {this->x=x; this->y=y;}
    double getX() const {return x;}
    double getY() const {return y;}
    void show () const {cout << '(' <<x <<',' <<y<<')' ;}
    };
    class MyRectangle  //表示矩形的类
    MyPoint up_left;  //矩形的左上角顶点
    MyPoint downright;  //矩形的右下角顶点
    public:
    MyRectangle (MyPoint upleft, MyPoint downright);
    MyPoint getUpLeft() const {return up_left;}  //返回左上角坐标
    MyPoint getDownRight() const {return down_right;}  //返回右下角坐标
    MyPoint getUpRight() const;  //返回右上角坐标
    MyPoint getDownLeft() const; //返回左下角坐标
    double area() const;  //返回矩形的面积
    };
    // **1** *******found*********
    MyRectangle::MyRectangle (______):
    up_left (p1), down_right (p2) {}
    MyPoint MyRectangle::getUpRight()const
    {
    return MyPoint (down_right.getX(), up_left.getY());
    }
    MyPoint MyRectangle::getDownLeft()const
    {
    // **2** *******found*******
    return MyPoint(______);
    }
    // **3** *******found*******
    ______ area() const
    {
    return (getUpLeft().getX()-getDownRight().getX ())*(getDownRight().getY()-getUpLeft().getY());
    }
    int main()
    {
    MyRectangle r (MyPoint (0, 2), MyPoint(2,0));
    r.getUpLeft().show();
    r.getUpRight().show();
    r.getDownRight().show();
    r.getDownLeft().show();
    cout <<r.area() <<endl;
    return 0;
    }
 
【正确答案】(1)MyPoint p1,MyPoint p2 (2)up_left.getX(),down_right.getY() (3)double MyRectangle:: 答案考生文件夹
【答案解析】[考点] 本题考查表示平面坐标系中的点的类MyPoint、表示矩形的类MyRectangle、构造函数和成员函数。 (1)考查构造函数,构造函数中的参数要给私有成员赋值,在下句中up_left(p1),down_right(p2){}指出私有成员赋值要使用形参p1和p2,因此这里参数要定义为MyPoint p1,MyPoint p2。 (2)主要考查成员函数的返回语句,MyPoint My Rectangle::getDownLeft()const函数要求返回一个左下角的点坐标,因此使用语句MyPoint(up_left.getX(),down_right.getY());。 (3)主要考查成员函数的定义,在MyRectangle类中已经声明double area()const,因此此处只要添加double MyRectangle::即可。 构造函数的参数定义时要注意在赋值语句中使用的参数。考查构造函数一般都会考查到形参,应注意联系上下文。类的成员函数在类外定义时要在函数名前面加上:返回值类型+类名+作用域(::)。