码迷,mamicode.com
首页 > 其他好文 > 详细

YTUOJ-矩形类定义(对象复制对象)

时间:2015-04-07 13:56:45      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:博客   c++   编程   对象      

题目描述

定义一个矩形类,数据成员包括左下角和右上角坐标,定义的成员函数包括必要的构造函数、输入坐标的函数,以及计算并输出矩形面积的函数。要求使用提示中给出的测试函数并不得改动。

输入

四个数,分别表示矩形左下角和右上角顶点的坐标,如输入3.7 0.4 6.5 4.9,代表左下角坐标为(3.7, 0.4),右上角坐标为(6.5, 4.9)。

技术分享

输出

输出一共有3行(请参考提示(hint)中的main函数):
第一行:由输入的坐标确定的矩形对象p1的面积
第二行:由对象复制得到的矩形对象p2的面积
第三行:直接初始化得到的矩形对象p3的面积

样例输入

3.7 0.4 6.5 4.9

样例输出

12.6
12.6
10

提示

int main()

{

    Rectangle p1;

    p1.input();

    p1.output();

    Rectangle p2(p1);

    p2.output();

    Rectangle p3(1,1,6,3);

    p3.output();

    return 0;

}

代码如下:

#include <iostream>
#include <cmath>
using namespace std;
class Rectangle
{
public:
    Rectangle (double a=0,double b=0,double c=0,double d=0);
    Rectangle (Rectangle &p);
    void input();
    void output();
private:
    double x1;
    double y1;
    double x2;
    double y2;

};

Rectangle::Rectangle(double a,double b,double c,double d)
{
    x1=a;
    y1=b;
    x2=c;
    y2=d;
}

void Rectangle::input()
{
    double a,b,c,d;
    cin>>a>>b>>c>>d;
    x1=a;
    y1=b;
    x2=c;
    y2=d;
}

Rectangle::Rectangle(Rectangle &p)
{
    x1=p.x1;
    y1=p.y1;
    x2=p.x2;
    y2=p.y2;
}

void Rectangle::output()
{
    cout<<fabs((x2-x1)*(y2-y1))<<endl;
}

int main()
{
    Rectangle p1;
    p1.input();
    p1.output();
    Rectangle p2(p1);
    p2.output();
    Rectangle p3(1,1,6,3);
    p3.output();
    return 0;
}


运行结果:

技术分享

学习心得:

之前学习构造函数的时候没注意过用对象去给对象赋值的操作,但是这周的第一个项目有个与两个对象有关的操作,于是仿照那个去做,结果连编译都通过不了,最后还是选择了问度娘,原来自己函数Rectangle::Rectangle(Rectangle &p)少了一个&(当然函数内部的定义也不同,用了this指针),一直没发现&的大用处,现在终于知道了T.T。

 

YTUOJ-矩形类定义(对象复制对象)

标签:博客   c++   编程   对象      

原文地址:http://blog.csdn.net/liuchang54/article/details/44918353

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!