学习紫皮书的结构体重载时,刘先生只给了加法、输出两种重载方式,成功激发了笔者的探索欲(不学懂心痒痒系列)。
但当笔者网搜时,弹出的结果可真是千奇百怪、五花八门。有定义在结构体里的, 有定义在外面的, 有缺比较的,有缺输入输出的,简直惨不忍睹。让人头晕眼花。


经历了漫长的修炼,笔者终于mark齐了统一格式的全部的运算符重载,分享给大家,让我们一起:吧!

注:笔者采用结构体内定义的方式,将运算符分为五大类(运算、比较、赋值、输入、输出) 每一类都挑选有代表性一种的给大家演示。
运算:+, -, *, /, +=等等
比较:>, = ,<, ≥, ≤, ==, !=等
赋值:=
输入:>>
输出:<<

代码:

#include<iostream>
#include<cstdio>
using namespace std; struct Point {int x, y;Point(int x = 0, int y = 0): x(x), y(y) {}//重载算术运算符(- * / +=同理)Point operator + (const Point& A) {x += A.x;y += A.y;return *this; } //重载比较运算符(< == != 同理)bool operator > (const Point& A) {return x > A.x;                              }//重载赋值运算符Point operator = (const Point& A) {x = A.x;y = A.y;return *this; } //重载输入输出运算符 friend istream& operator >> (istream& in, Point& P) {in >> P.x >> P.y;return in;}//重载输出运算符friend ostream& operator << (ostream&, const Point& P) {cout << "(" << P.x << "," << P.y << ")";return cout;} }point[10];                                            //结构体数组 int main()
{//创建 Point a(5,4), b(4,2);                 //构造函数创建结构体 point[0].x = 2 ; point[0].y = 4;      //结构体数组创建结构体point[1].x = 1 ; point[1].y = 4;//算术运算符point[1] = point[1]+point[0];        //比较运算符         cout << (point[0]>point[1]) << endl;             //赋值运算符:point[2] = point[1];cout << point[2] << endl; //输入运算符cin >> point[5]; //输出运算符 cout << point[5]; return 0;
}

叮!

快来mark! 结构体重载运算符大全(运算、比较、赋值、输入输出)相关推荐

  1. codeforces 1428E. Carrots for Rabbits(贪心(非常优秀的贪心题),结构体重载运算符)

    题目链接:https://codeforces.ml/contest/1428/problem/E 题意:给定n个数,要求将这些数拆分为k个数,是这些数的平方和最小. 题解:结构体,一开始想到的是每次 ...

  2. 数字图像处理实验(七)| 形态学图像处理{生成结构元素strel、腐蚀运算imerode、膨胀运算imdilate、开运算imopen、闭运算imclose}(附代码和实验截图、汉字视力表项目、总结)

    文章目录 一.实验目的 二.实验仪器 三.实验原理 1. 结构元素: 2. 腐蚀运算: 3. 膨胀运算: 4. 开运算: 5. 闭运算: 四.实验内容: 1. 形态学图像处理用于图像边界提取 2.数学 ...

  3. 结构体重定义冲突_有意减脂、调整饮食,体重却增加了?

    很多朋友减肥的过程中,都遇到过这样的疑惑:在减肥,也有控制饮食.调整饮食结构,而且还配合适当的锻炼,但是体重却没有明显的下降,甚至还上升了?一上称就感觉没了动力,为什么越练越重? 其实,这是很常见的一 ...

  4. 【杭电oj】-1234开门人关门人(快排,结构体)

    开门人和关门人 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su ...

  5. db2查询表结构语句_SQL语句大全,赶快收藏吧!

    一.基础1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname3.说明:备份sql server --- 创建 ...

  6. python应用seo_SEO快排技术和应用技术编程大全

    授课内容简介 两个模块:「SEO套路」和「SEO应用编程」 「SEO套路」模块,分 "域名.内容&模板.关键词.链接.点击" 五个章节,所有的SEO动作都是从这5个点中入手 ...

  7. 【Python系列2】Python变量类型和运算符 大全

    文章目录 变量定义和使用 `int`整数类型 整数不同进制 数字分隔符 `float`小数/浮点数类型 `complex`复数类型 字符串 处理字符串中的引号 字符串换行 长字符串 原始字符串 `by ...

  8. Linux目录结构和常用命令大全(文件处理命令)

    前言:Hello! 我是@每天都要敲代码!目前在和比特蛋哥重温一下Linux基础:毕竟每个大佬讲的课都有一些不同:虽然蛋哥的课程很少,但是干货也挺多的,等跟着蛋哥学习完这些课,就再更新一些我以前所学的 ...

  9. 三个数相减的平方公式_快收好这份小学数学公式大全!孩子遇到数学难题时肯定用得上...

    必背定义.定理公式 1.三角形的面积=底×高÷2 公式 S= a×h÷2 2.正方形的面积=边长×边长 公式 S= a×a 3.长方形的面积=长×宽 公式 S= a×b 4.平行四边形的面积=底×高 ...

最新文章

  1. R语言KMeans聚类分析确定最优聚类簇数实战:NbClust包(确定最优聚类簇数)
  2. HTML5 localStorage本地儲存
  3. JZOJ 5305. 【NOIP2017提高A组模拟8.18】C
  4. java统计一个字符串中每个字符出现的次数_剑指offer算法题054:字符流中第一个不重复的字符...
  5. wxml报错原因_C#生成、解析xml文件以及处理报错原因
  6. um是代表什么意思_女生约会心里都想什么?女生约会举动代表什么意思
  7. 基于java SSM校园兼职平台系统设计和实现
  8. 离职通知邮件主题写什么好_(原创)拿到了企业的offer后要注意什么?
  9. cout 数组_C++用指针访问数组元素(学习笔记:第6章 08)
  10. Dubbo-Zookeeper安装
  11. [转帖]Beyond Compare如何进行二进制比较
  12. linux命令 选项,不点之Linux命令、选项及文件概念
  13. 计算机桌面颜色如何设置标准,电脑桌面背景字体颜色设置小技巧
  14. 怎么把腾讯视频qlv格式转换成mp4视频
  15. Java 输入判断5,7倍数
  16. 智库大会 | 高端对话:智能科技推动管理学变革...
  17. pyqt5 等待界面 (QMovie 加载 gif)
  18. 【C语言】数组的强化训练(详细讲解+源码展示)
  19. matlab没有关联m文件,matlab 不关联m文件的解决方法
  20. 阿里云9块5主机的“开箱作业”

热门文章

  1. TCP/IP协议栈到底是内核态好还是用户态好?
  2. 我用 Redis 干掉了一摞简历
  3. 比Redis快5倍的中间件,为啥这么快?
  4. JavaScript基本语法(续)
  5. MPEG-LA发布VVC专利池
  6. C++11新特性学习
  7. 腾讯技术直播间 | 走进小程序云开发
  8. FFmpeg源代码学习
  9. U盘启动盘恢复原来的大小
  10. 关于“豪猪”,你理解的透彻吗?【Hystrix是个什么玩意儿】