题目描述

  定义一个矩形类,数据成员包括左下角和右上角坐标,定义的成员函数包括必要的构造函数、输入坐标的函数,实现矩形加法,以及计算并输出矩形面积的函数。要求使用提示中给出的测试函数并不得改动。
  两个矩形相加的规则是:决定矩形的对应坐标分别相加,如
    左下角(1,2),右上角(3,4)的矩形,与
    左下角(2,3),右上角(4,5)的矩形相加,得到的矩形是
    左下角(3,5),右上角(7,9)的矩形。
  这个规则没有几何意义,就这么定义好了。
  输出面积的功能通过重载"<<"运算完成。
  本题可以在2383的基础上扩展完成。

输入

测试函数中第一个矩形直接初始化,第二个矩形通过键盘输入。输入四个数,分别表示第二个矩形左下角和右上角顶点的坐标,如输入2.5 1.8 4.3 2.5,代表左下角坐标为(2.5, 1.8),右上角坐标为(4.3, 2.5)。

输出

输出两点相加后得到的点的面积。运行测试函数时,p1的顶点是1 1 6 3,如果输入的p2是2.5 1.8 4.3 2.5,计算得到的矩形p3的左下角坐标为(3.5, 2.8),右上角坐标为(10.3, 5.5),输出为p3的面积18.36。

样例输入

2.5 1.8 4.3 2.5

样例输出

18.36

提示

int main()

{

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

p2.input();

p3=p1+p2;

cout<<p3;

return 0;

}

提交时请加上主函数。

 
#include <iostream>
using namespace std; class Rectangle
{
private :
double x1, y1, x2, y2; public :
Rectangle();
Rectangle(double x1, double y1, double x2, double y2); void input();
friend Rectangle operator + (Rectangle &r1, Rectangle &r2);
friend ostream & operator << (ostream &output, Rectangle &T);
}; Rectangle::Rectangle() { } Rectangle::Rectangle(double x1, double y1, double x2, double y2) { this->x1 = x1;
this->y1 = y1;
this->x2 = x2;
this->y2 = y2;
} void Rectangle::input() { cin >> x1 >> y1 >> x2 >> y2; return ;
} Rectangle operator + (Rectangle &r1, Rectangle &r2)
{
return Rectangle(r1.x1 + r2.x1, r1.y1 + r2.y1, r1.x2 + r2.x2, r1.y2 + r2.y2);
} ostream & operator << (ostream &output, Rectangle &r) { double c;
c = (r.x2 - r.x1) * (r.y2 - r.y1);
output << c; return output;
} int main() { Rectangle p1(1,1,6,3),p2,p3; p2.input(); p3=p1+p2; cout<<p3; return 0; }

  

问题 B: 矩形类中运算符重载【C++】的更多相关文章

  1. string类中运算符重载实现

    C++中预定义的加.减等运算符的操作对象只能是基本的数据类型.如果要在用户自定义的类型对象上应用同样的运算符,就需要通过运算符重载来重新定义其实现,使它能够用于自定义类型执行特定的操作,所以运算符重载 ...

  2. YTU 2617: B C++时间类的运算符重载

    2617: B C++时间类的运算符重载 时间限制: 1 Sec  内存限制: 128 MB 提交: 284  解决: 108 题目描述 C++时间类的运算符重载 定义一个时间类Time,其数据成员为 ...

  3. c++中运算符重载

    c++语言中运算符重载都是通过函数来实现的,所以其实质为函数重载,当c++语言原有的一个运算符被重载之后,它原来所具有的语义并没有消失,只相当于针对一个特定的类定义了一个新的运算符. <1> ...

  4. sdut 4-1 复数类的运算符重载

    4-1 复数类的运算符重载 Time Limit: 1000MS Memory limit: 65536K 题目描写叙述 通过本题目的练习能够掌握成员运算符重载及友元运算符重载 要求定义一个复数类.重 ...

  5. 问题 C: B C++时间类的运算符重载

    题目描述 C++时间类的运算符重载 定义一个时间类Time,其数据成员为表示时间的小时(hour).分(minute),秒(second). 重载运算符“+”,使之能用于时间对象的加法运算:重载运算符 ...

  6. 08 c++中运算符重载(未完成)

    参考:轻松搞定c++语言 定义:赋予已有运算符多重含义,实现一名多用(比较函数重载) 运算符重载的本质是函数重载 重载函数的格式: 函数类型 operator 运算符名称(形参表列)  {  重载实体 ...

  7. C++ 友元(friend关键字)、类中的重载、操作符重载(operator关键字)

    C++ 中友元的用法: 1.在类中使用friend关键字声明 2.类的友元可以是其它类或者具体函数 3.友元不是类的一部分 4.友元不受类中访问级别的限制 5.友元可以直接访问具体类中的所有成员. 友 ...

  8. C++类中的重载

    函数重载回顾 函数重载的本质为相互独立的不同函数 C++中通过函数名和函数参数确定函数调用 无法直接通过函数名得到重载函数的入口地址 函数重载必然发生在同一个作用域 类中的成员函数可以进行重载 构造函 ...

  9. c++String类的运算符重载---21

    原创博文,转载请标明出处--周学伟http://www.cnblogs.com/zxouxuewei/  一,创建测试程序包 测试代码如下: /* Date: 2017-5-4 * Descripti ...

随机推荐

  1. 标签li设为display inline-block后间距问题

    在对导航栏做水平排列的时候,我们往往对li元素设为display:inline-block 目的是为了,让所有li元素并排在一起,但是遇到个问题,我们的标签之间会产生空白边距 如图所示: 这样看上去, ...

  2. 配置wordpress

    安装教程 软件介绍 WordPress以它的易于安装而出名.在大多数情况下,安装WordPress是一个很简单的事情,并且花不到5分钟就可以搞定.现在很多web主机都提供自动安装WordPress的工 ...

  3. 性能测试工具LoadRunner15-LR之负载生成器(Load Generators)

    简介 对场景进行设计后,需要对负载生成器进行管理和配置.Load Generators是运行脚本的负载引擎(相当于加压机)主要功能是生成虚拟用户进行负载,在默认情况下使用本地的负载生成器来运行脚本. ...

  4. 【密码学】CSP的概念

    CSP加密服务提供者(Cryptographic Service Provider)具有一下几个特点: CSP是真正执行密码运算的独立模块 物理上一个CSP由两部分组成:一个动态连接库,一个签名文件 ...

  5. stm32 定时器初步

    今天学习STM32 的通用定时器:TIMx (TIM2.TIM3.TIM4 和 TIM5). 定时器比较复杂,功能繁多,这里我们就说最基本的计数功能. 1.定时器的时钟从哪里来? 定时器的时钟来源有 ...

  6. android 官网访问不了

    网上搜到的解决方案,亲测有用.记下来,以备遗忘. 使用管理员权限,修改C:\Windows\System32\Drivers\etc\hosts文件,加入以下内容 173.194.127.7 deve ...

  7. ASP.NET WebForm 之 Ajax 请求后端处理

    概述 ASP.NET MVC中的异步用途非常广泛,操作起来也非常简单.前台请求异步请求 Controller下的Action 方法,后端返回ActionResult 即可.但是在ASP.NET Web ...

  8. C# 字节数组和十六进制字符串之间转换的另类写法

    今天从http://www.cnblogs.com/NanaLich/archive/2012/05/24/2516860.html看到的,记录下来 主要是XmlSerializationReader ...

  9. app启动黑屏

    由于在手机上多次删除应用,导致加载app时加载缓存图片缺失,进行如下操作: 删除Xcode DerivedData目录释放空间: 1.首先切换到 Finder 程序,打开“前往”菜单. 2.然后按住  ...

  10. (生产)axios - 请求接口

    参考:https://www.awesomes.cn/repo/mzabriskie/axios axios 介绍 基于 Promise 的 HTTP 请求客户端,可同时在浏览器和 node.js 中 ...