问题 B: 矩形类中运算符重载【C++】
题目描述
  定义一个矩形类,数据成员包括左下角和右上角坐标,定义的成员函数包括必要的构造函数、输入坐标的函数,实现矩形加法,以及计算并输出矩形面积的函数。要求使用提示中给出的测试函数并不得改动。
   两个矩形相加的规则是:决定矩形的对应坐标分别相加,如
     左下角(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++】的更多相关文章
- string类中运算符重载实现
		C++中预定义的加.减等运算符的操作对象只能是基本的数据类型.如果要在用户自定义的类型对象上应用同样的运算符,就需要通过运算符重载来重新定义其实现,使它能够用于自定义类型执行特定的操作,所以运算符重载 ... 
- YTU 2617: B C++时间类的运算符重载
		2617: B C++时间类的运算符重载 时间限制: 1 Sec 内存限制: 128 MB 提交: 284 解决: 108 题目描述 C++时间类的运算符重载 定义一个时间类Time,其数据成员为 ... 
- c++中运算符重载
		c++语言中运算符重载都是通过函数来实现的,所以其实质为函数重载,当c++语言原有的一个运算符被重载之后,它原来所具有的语义并没有消失,只相当于针对一个特定的类定义了一个新的运算符. <1> ... 
- sdut 4-1 复数类的运算符重载
		4-1 复数类的运算符重载 Time Limit: 1000MS Memory limit: 65536K 题目描写叙述 通过本题目的练习能够掌握成员运算符重载及友元运算符重载 要求定义一个复数类.重 ... 
- 问题 C: B C++时间类的运算符重载
		题目描述 C++时间类的运算符重载 定义一个时间类Time,其数据成员为表示时间的小时(hour).分(minute),秒(second). 重载运算符“+”,使之能用于时间对象的加法运算:重载运算符 ... 
- 08 c++中运算符重载(未完成)
		参考:轻松搞定c++语言 定义:赋予已有运算符多重含义,实现一名多用(比较函数重载) 运算符重载的本质是函数重载 重载函数的格式: 函数类型 operator 运算符名称(形参表列) { 重载实体 ... 
- C++ 友元(friend关键字)、类中的重载、操作符重载(operator关键字)
		C++ 中友元的用法: 1.在类中使用friend关键字声明 2.类的友元可以是其它类或者具体函数 3.友元不是类的一部分 4.友元不受类中访问级别的限制 5.友元可以直接访问具体类中的所有成员. 友 ... 
- C++类中的重载
		函数重载回顾 函数重载的本质为相互独立的不同函数 C++中通过函数名和函数参数确定函数调用 无法直接通过函数名得到重载函数的入口地址 函数重载必然发生在同一个作用域 类中的成员函数可以进行重载 构造函 ... 
- c++String类的运算符重载---21
		原创博文,转载请标明出处--周学伟http://www.cnblogs.com/zxouxuewei/ 一,创建测试程序包 测试代码如下: /* Date: 2017-5-4 * Descripti ... 
随机推荐
- my15_ mysql binlog格式从mixed修改为row格式
			由于主库繁忙,就在从库上修改binlog格式 1. 从库切日志mysql> flush logs;Query OK, 0 rows affected (0.00 sec) mysql> f ... 
- java——删除HashMap中所有的键值对
			第一种:❌(报错) import java.util.HashMap; import java.util.Set; public class T{ public static void main(St ... 
- 转 rac中并行 PARALLEL 的设置
			sample 1: rac中并 行的设置 https://blog.csdn.net/wll_1017/article/details/8285574 我们的生产库一般在节点一上的压力比较大,在节点二 ... 
- Select语句完整的执行顺序
			Select语句完整的执行顺序:1.from子句组装来自不同数据源的数据:2.where子句基于指定的条件对记录行进行筛选:3.group by子句将数据划分为多个分组:4.使用聚集函数进行计算:5. ... 
- Access restriction: The type Base64 is not accessible due to restriction on
			java build path>把libraries中的JRE System Library删除重新导入. 
- java生成临时令牌和访问令牌
			public String getTicket(String logo, String productId) { String aTicket = ""; SimpleDateFo ... 
- java 静态变量生命周期(类生命周期)(转)
			Static: 加载:java虚拟机在加载类的过程中为静态变量分配内存. 类变量:static变量在内存中只有一个,存放在方法区,属于类变量,被所有实例所共享 销毁:类被卸载时,静态变量被销毁,并释放 ... 
- TCP连接的ISN、连接建立超时及TCP的长短连接
			问题现象: 一.TCP连接的ISN 之前我们说过初始建立TCP连接的时候的系列号(ISN)是随机选择的,那么这个系列号为什么不采用一个固定的值呢?主要有两方面的原因 防止同一个连接的不 ... 
- 使用WindowsAPI播放PCM音频
			这一篇文章同上一篇<使用WindowsAPI获取录音音频>原理具有相似之处,不再详细介绍函数与结构体的参数 1. waveOutGetNumDevs 2. waveOutGetDevCap ... 
- adb root错误信息adbd cannot run as root in production builds问题解决
			adb root错误信息adbd cannot run as root in production builds问题解决 一.问题描述 1.输入指令 >adb root adbd cannot ... 
