c++ point类(含输入和输出的重载)

2023-11-17

【问题描述】

定义类point,其中包括两个数据成员,均为 int 类型,为点的横坐标和纵坐标。

类的成员函数如下:

构造函数:包括两个参数,其两个参数的默认值为0。

重载运算符 +、- 、 ==、 != 

+:两个点相应的坐标相加,比如(1,1)+(2,2)=(3,3)

 -:两个点相应的坐标相减,比如(2,2)-(1,1)=(1,1)

== :两个点相应坐标如果相等,则结果为true,否则结果为false

!= :两个点的两个坐标只要有一个不相等,则结果为true,否则结果为false

非成员函数:

重载运算符<<,输出点的横坐标和纵坐标,如(2,3)其中2为横坐标,3为纵坐标

重载运算符>>,输入点的横坐标和纵坐标,中间以空格隔开比如输入2 3 ,给点的横坐标和纵坐标赋值.

注意:输入/输出流运算符重载不能使用友元函数 

其主函数如下:

int main()
{
         point  x, y, z1, z2;
         cin>>x>>y;
          z1=x+y;
         z2=x-y;
        cout<<z1<<z2;

         if(x==y)   cout<<"x==y"<<endl;
         else   cout<<"x!=y"<<endl;

         if(z1!=z2)   cout<<"z1!=z2"<<endl;
         else   cout<<"z1==z2"<<endl;
         return 0;
}
【输入形式】输入有2行,每行输入一个点的横坐标和纵坐标, 中间用空格隔开

【输出形式】输出有4行,第1行输出 x,y 两点之和,即z1; 第2行输出x,y 两点之差,即z2;

第3行输出 x, y 两点的比较结果, 如果两点相等, 则输出"x==y", 否则输出"x!=y";

第4行输出 z1, z2 两点的比较结果, 如果两点不相等, 则输出"z1!=z2", 否则输出"z1==z2";
【样例输入】

3 4

1 2
【样例输出】

(4,6)

(2,2)

x!=y

z1!=z2

 

AC代码

#include<iostream>
using namespace std;
class point
{
public:
	point(int a = 0, int b = 0)
	{
		x = a;
		y = b;
	}
	void get(int &m, int &n)
	{
		m = x;
		n = y;
	}
	void set(int m, int n)
	{
		x = m;
		y = n;
	}
	point operator+(point p);
	point operator-(point p);
	bool operator == (point p);
	bool operator != (point p);
private:
	int x;
	int y;
};

point point::operator+(point p)
{
	point temp;
	temp.x = this->x + p.x;
	temp.y = this->y + p.y;
	return temp;
}

point point::operator-(point p)
{
	point temp;
	temp.x = this->x - p.x;
	temp.y = this->y - p.y;
	return temp;
}

bool point::operator==(point p)
{
	return (this->x == p.x) && (this->y == p.y);
}

bool point::operator!=(point p)
{
	return (this->x != p.x) || (this->y != p.y);
}

ostream& operator<<(ostream &os, point &p)
{
	int m, n;
	p.get(m, n);
	os << "(" << m << "," << n << ")" << endl;
	return os;
}

istream& operator>>(istream &is, point &p)
{
	int m, n;
	is >> m;
	is.ignore(1);//忽略空格
	is >> n;
	is.ignore(1);//忽略回车
	p.set(m, n);
	return is;
}

int main()
{
	point  x, y, z1, z2;
	cin >> x >> y;
	z1 = x + y;
	z2 = x - y;
	cout << z1 << z2;

	if (x == y)   cout << "x==y" << endl;
	else   cout << "x!=y" << endl;

	if (z1 != z2)   cout << "z1!=z2" << endl;
	else   cout << "z1==z2" << endl;
	return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c++ point类(含输入和输出的重载) 的相关文章

随机推荐

  • stm32专题二十六:输入捕获 脉宽测量

    硬件设计 脉宽测量原理 当按键没有按下时 由硬件电路自动拉低 如果按键按下 则PA0产生上升沿 我们进行脉宽测量时 首先设置为上升沿捕获 然后在第一次捕获到上升沿时 将计数器清零 并设置捕获极性为下降沿捕获 当第二次捕获到信号时 就是一个完
  • Vigenere密码

    Vigenere密码技术 在单字符单表替换密码中 明文中的字符与密文中字符是一一对应的 在明文表中的字符也存在于在密文表中 明文中字符的统计特性在密文中没有得到改变 单字符多表替换密码技术是用一系列 两个以上 替换表依次对明文的字符进行替换
  • 跟据后台数据生成饼图及柱形图实例

    在做社团管理系统时 为了进一步完善功能 用jfreechar做了一个饼图与柱形图 做的比较粗糙 效果如下 现在跟大家分享一下实现方法 生成饼图 param list 传入参数为一个list list中包含多个map 这个list是从数据库中
  • ZooKeeper系统模型之集群间消息通信。

    ZooKeeper的消息类型大体上可以分为四类 分别是 数据同步型 服务器初始化型 请求处理型和会话管理型 数据同步型 数据同步型消息是指在Learner和Leader服务器进行数据同步的时候 网络通信所用到的消息 通常有DIFF TRUN
  • java 仓库管理_Java仓库管理系统(一)

    从小到大没有写日记的习惯 但本着互联网开放 共享的原则 并且马士兵老师曾说 当你学会一些技能的时候 看到别人正被你会的东西所困扰 你应该去帮助他 所以把仓库管理系统的详解记录一下 说的可能不那么专业 但基本都能听懂 本人编程起步 有错误请指
  • 常见手机快充协议介绍

    早在几年前 各厂家就在逐步推进手机的充电速度 随着QC PD等一系列的充电协议不断更新 各家手机厂家都有自己的快充解决方案 不仅功率不一样 手机间的充电协议与标准也变得越发复杂 不同品牌的手机快充名称也各有不同 所以我们需要先清楚我们的手机
  • 垃圾箱清空后数据恢复(亲测有效)

    辛辛苦苦写PPT写了两周 误删了还没发现 然后顺便把垃圾箱也清空了 wps还因为云空间已满不能同步上传 连个记录都没有 真的是差点气到心梗 经历了一个小时的百度 恢复了我的PPT 记录一下数据的恢复过程 无图 恢复的时候过于烦躁 忘记截图
  • STM32单片机IAP介绍

    1 什么是IAP 首先区分下两个概念 ISP和IAP ISP In System Programming 在系统中编程 通过芯片专用的串行编程接口对其内部的程序存储器进行擦写 IAP In Application Programming 在
  • Unity中UGUI的Text实现超链接点击的解决方案

    Unity实现超链接点击 功能简介 C 脚本 使用方法 Demo工程内截图 Demo地址 功能简介 1 同一个Text内可以实现多个不同字符区域的点击 2 适配了中文 英文 韩文 日文 阿拉伯语等 更多语种待测试 C 脚本 文件名 UITe
  • uni-app 微信小程序vendor.js 过大的处理方式和分包优化

    小程序工具提示vendor js过大 已经跳过es6向es5转换 这个转换问题本身不用理会 因为vendor js已经是es5的了 关于体积控制 参考如下 使用运行时代码压缩 HBuilderX创建的项目勾选运行 gt 运行到小程序模拟器
  • Shell脚本编写教程【二】——Shell 数组

    Shell脚本编写教程 二 Shell 数组 目录 https blog csdn net shn111 article details 131590488 参考教程 https www runoob com linux linux she
  • colmap利用已知的相机内外参数重建场景

    Colmap根据相机内外参数重建稀疏模型 COLMAP稀疏重建得图像内外参文件 colmap model converter input path output path output type TXT
  • android 蓝牙ble 133,java – Android蓝牙错误133

    我正在尝试连接到 Android上的蓝牙设备 我在onClientConnectionState处理程序中收到状态133 我并不总是得到这个错误 有时连接很好 我无法指出触发问题的原因 重新启动设备和我的repro应用程序后 我甚至立即使用
  • 对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。(蓝桥杯)

    题描述 对于长度为5位的一个01串 每一位都可能是0或1 一共有32种可能 它们的前几个是 00000 00001 00010 00011 00100 请按从小到大的顺序输出这32种01串 输入格式 本试题没有输入 输出格式 输出32行 按
  • 基于光标读取xml stax入门

    StAX 概述 从一开始 Java API for XML Processing JAXP 就提供了两种方法来处理 XML 文档对象模型 DOM 方法是用标准的对象模型表示 XML 文档 Simple API for XML SAX 方法使
  • 基于实时迭代的数值鲁棒NMPC双模稳定预测模型(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 Matlab代码实现 4 参考文献 1 概述 本文 T 秒进行 N 次模拟 使用提出的使
  • 计算机二级小蒋在教务处负责学生成绩,小蒋是一位中学教师,在教务处负责初一年级学生的成绩管理。由于学校地处偏远地区..._考试资料网...

    小蒋是一位中学教师 在教务处负责初一年级学生的成绩管理 由于学校地处偏远地区 缺 乏必要的教学设施 只有一台配置不太高的PC可以使用 他在这台电脑中安装了Microsoft Office 决定通过Excel来管理学生成绩 以弥补学校缺少数据
  • 电子企业应该先实施ERP系统还是WMS仓储管理系统

    电子企业应该先实施ERP系统还是WMS仓储管理系统 这是一个有争议的问题 不同的企业和管理专家有不同的看法 但是 从我个人的观点来看 电子企业应该先实施ERP系统 然后再考虑WMS仓储管理系统 首先 ERP系统是企业资源规划 Enterpr
  • React Native: 添加外部字体

    iOS 1 字体文件加入到Xcode项目中 2 确认字体文件包含在目标中 点击字体文件 查看是否在右栏的 Target Membership中选择了改字体 3 检查字体是否在打包的资源中 在Build Phases中查看字体是否添加在Cop
  • c++ point类(含输入和输出的重载)

    问题描述 定义类point 其中包括两个数据成员 均为 int 类型 为点的横坐标和纵坐标 类的成员函数如下 构造函数 包括两个参数 其两个参数的默认值为0 重载运算符 两个点相应的坐标相加 比如 1 1 2 2 3 3 两个点相应的坐标相