3.28C++

复数类的实现,写出三种构造函数,算术运算符、关系运算符、逻辑运算符重载尝试实现自增、自减运算符的重载 

#include <iostream>
using namespace std;
class Num
{int rel;   //实部int vir;   //虚部
public:Num():rel(2),vir(1){}Num(int rel,int vir):rel(rel),vir(vir){}Num &operator=(const Num &other){cout << "Num的拷贝赋值函数" << endl;this->rel = other.rel;this->vir = other.vir;return *this;}friend Num operator+(const Num n1,const Num n2);Num operator-(Num &other);friend Num operator*(const Num n1,const Num n2);Num operator/(const Num n1);friend Num operator%(const Num n1,const Num n2);friend bool operator>(const Num n1,const Num n2);bool operator<(const Num n1);friend bool operator>=(const Num n1,const Num n2);bool operator==(const Num n1);friend bool operator<=(const Num n1,const Num n2);friend bool operator&&(const Num n1,const Num n2);bool operator||(const Num n1);friend Num operator++(Num &n1);Num operator++(int);friend Num operator--(Num &n1);Num operator--(int);void show();
};
Num operator+(const Num n1,const Num n2)
{Num temp;temp.rel = n1.rel+n2.rel;temp.vir = n1.vir+n2.vir;return temp;
}
Num Num::operator-(Num &other)
{Num temp;temp.rel = this->rel-other.rel;temp.vir = this->vir-other.vir;return temp;
}
Num operator*(const Num n1,const Num n2)
{Num temp;temp.rel = n1.rel*n2.rel;temp.vir = n1.vir*n2.vir;return temp;
}
Num Num::operator/(const Num n1)
{Num temp;temp.rel = this->rel/n1.rel;temp.vir = this->vir/n1.vir;return temp;
}
Num operator%(const Num n1,const Num n2)
{Num temp;temp.rel = n1.rel%n2.rel;temp.vir = n1.vir%n2.vir;return temp;
}
bool operator>(const Num n1,const Num n2)
{if(n1.rel>n2.rel){return n1.rel>=n2.rel;}else if(n1.rel==n2.rel){return n1.vir>=n2.vir;}return n1.rel>=n2.rel;
}
bool Num::operator<(const Num n1)
{if(this->rel<n1.rel){return this->rel<n1.rel;}else if(this->rel==n1.rel){return this->vir<n1.vir;}return this->rel<n1.rel;
}
bool operator>=(const Num n1,const Num n2)
{if(n1.rel>n2.rel){return n1.rel>n2.rel;}else if(n1.rel==n2.rel){return n1.vir>=n2.vir;}return n1.vir>n2.vir;
}
bool Num::operator==(const Num n1)
{if(this->rel<n1.rel){return this->rel>n1.rel;}else if(this->rel==n1.rel){return this->vir==n1.vir;}return this->rel<n1.rel;
}
bool operator<=(const Num n1,const Num n2)
{if(n1.rel<n2.rel){return n1.rel<n2.rel;}else if(n1.rel==n2.rel){return n1.vir<=n2.vir;}return n1.vir<n2.vir;
}bool operator&&(const Num n1,const Num n2)
{return (n1.rel&&n2.rel)||(n1.vir&&n2.vir);
}
bool Num::operator||(const Num n1)
{return (this->rel||n1.rel)&&(this->vir||n1.vir);
}
Num operator++(Num &n1)
{++(n1.rel);++(n1.vir);return n1;
}
Num Num::operator++(int)
{Num temp;temp.rel=this->rel++;temp.vir=this->vir++;return temp;
}
Num operator--(Num &n1)
{--(n1.rel);--(n1.vir);return n1;
}
Num Num::operator--(int)
{Num temp;temp.rel=this->rel--;temp.vir=this->vir--;return temp;
}
void Num::show()
{cout << rel << " + " << vir << "i" << endl;
}
int main()
{Num n1;Num n2(1,4);Num n3;n3 = n1+n2;n3.show();Num n4;n4=n1-n2;n4.show();n4++;n4.show();--n4;n4.show();cout<<(n4>=n3)<<endl;Num n5;n5--;n5.show();++n5;n5.show();cout<<(n2&&n3)<<endl;cout<<(n2||n5)<<endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/776905.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入解析RSA算法原理及其安全性机制

码到三十五 &#xff1a; 个人主页 心中有诗画&#xff0c;指尖舞代码&#xff0c;目光览世界&#xff0c;步履越千山&#xff0c;人间尽值得 ! 目录 一、RSA算法简介二、RSA算法原理2.1 背景与数学基础2.2 密钥生成2.3 加密过程2.4 解密过程 三、安全性考虑四、RSA的使用五、…

数据结构进阶篇 之 【二叉树链序存储】的整体实现讲解

封建迷信我嗤之以鼻&#xff0c;财神殿前我长跪不起 一、二叉树链式结构的实现 1.二叉树的创建 1.1 手动创建 1.2 前序递归创建 2.二叉树的遍历 2.1 前序&#xff0c;中序以及后序遍历概念 2.2 层序遍历概念 2.3 前序打印实现 2.4 中序打印实现 2.4 后序打印实现 2.…

SpringBoot项目启动成功,但是调用接口直接报NOT FOUND 404

问题描述 SpringBoot项目启动成功&#xff0c;但是调用接口直接报NOT FOUND 404 解决办法 启动类中ComponentScan(basePackages {“com.afclab”})中的扫包路径和项目路径不一样&#xff0c;导致扫不到Controller等组件&#xff0c;修改成和项目路径一样就可以解决&#xf…

MYSQL高阶语句(一)

目录 一、常用查询 1、order by 按关键字排序 1.升序排序 2.降序排序 3.结合where进行条件过滤再排序 4.多字段排序 2、区间判断及查询不重复记录 1. and / or 且与或的使用 2.嵌套、多条件使用 3.distinct 查询不重复记录 3、GROUP BY 对结果进行分组 4、Li…

web渗透测试漏洞复现:Hadoop 未授权访问漏洞复现并getshell

web渗透测试漏洞复现 1. Hadoop 未授权访问漏洞复现1.1 Hadoop简介1.2 Hadoop资产搜索1.3 Hadoop未授权漏洞复现1.3 Hadoop未授权漏洞修复建议1.5 拓展利用---Hadoop未授权getshell1.5.1 攻击链路分析1.5.2 Hadoop getshell漏洞利用1.5.3 脚本方法一:反弹shell1.5.4 脚本方法二…

独立站攻略|如何使用SEO代理优化网站排名?

每天&#xff0c;互联网上都会生成和共享大量信息&#xff0c;这使得预测哪个关键字或主题将成为趋势变得很有挑战性&#xff0c;因此人们可以预测和优化他们的搜索引擎排名。但使用“SEO 代理”&#xff0c;就会使得SEO优化更加有效且精准。 一、什么是SEO&#xff1f; 简而言…

数据库中的约束的简介,什莫是约束,常见的约束,非空约束

目录 (一).。。。。。。。。概述: 1.1为什么需要约束 1.2什莫是约束

2024 年广西职业院校技能大赛高职组《云计算应用》赛项样卷

#需要资源&#xff08;软件包及镜像&#xff09;或有问题的&#xff0c;可私博主&#xff01;&#xff01;&#xff01; #需要资源&#xff08;软件包及镜像&#xff09;或有问题的&#xff0c;可私博主&#xff01;&#xff01;&#xff01; #需要资源&#xff08;软件包及镜…

Ainx的多路由模式

&#x1f4d5;作者简介&#xff1a; 过去日记&#xff0c;致力于Java、GoLang,Rust等多种编程语言&#xff0c;热爱技术&#xff0c;喜欢游戏的博主。 &#x1f4d7;本文收录于Ainx系列&#xff0c;大家有兴趣的可以看一看 &#x1f4d8;相关专栏Rust初阶教程、go语言基础系列…

Maximum Sum(贪心策略,模运算,最大子段和)

文章目录 题目描述输入格式输出格式样例输入1样例输出1样例输入2样例输出2提交链接提示 解析参考代码 题目描述 你有一个由 n n n 个整数组成的数组 a a a 。 你要对它进行 k k k 次操作。其中一个操作是选择数组 a a a 的任意连续子数组(可能为空)&#xff0c;并在数组的…

ubuntu的常用操作

一、用户 1.1 创建新用户 1.1.1 添加、修改、删除 1.2 超级用户root 切换到root用户&#xff0c;有全部权限&#xff0c;可以直接使用任何命令。 我们在什么时候才会切换到root用户进行操作呢&#xff1f;当我们使用某些命令&#xff0c;不想前面一直加sudo的话&#xff0c;…

2024年【道路运输企业主要负责人】考试题库及道路运输企业主要负责人报名考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 道路运输企业主要负责人考试题库根据新道路运输企业主要负责人考试大纲要求&#xff0c;安全生产模拟考试一点通将道路运输企业主要负责人模拟考试试题进行汇编&#xff0c;组成一套道路运输企业主要负责人全真模拟考…

1.7.2 python练习题15道

1、求出1 / 1 1 / 3 1 / 5……1 / 99的和 (1分之一1分之三1分支5....) 2、用循环语句&#xff0c;计算2 - 10之间整数的循环相乘的值 &#xff08;2*3*4*5....10) 3、用for循环打印九九乘法表 4、求每个字符串中字符出现的个数如&#xff1a;helloworld 5、实现把字符串str …

【LVGL-BMP,PNG,JPEG,GIF】

LVGL-BMP&#xff0c;PNG&#xff0c;JPEG&#xff0c;GIF ■ BMP■ 演示一&#xff1a; ■ PNG■ 演示一&#xff1a; ■ JPEG■ 演示一&#xff1a; ■ GIF■ 演示一&#xff1a; ■ BMP 使用 LVGL BMP解码库之前 &#xff0c;必须在 lv_conf.h文件启用 LV_USE_BMP。 如果该…

冥想打坐睡觉功法

睡觉把手机放远一点&#xff0c;有电磁辐射&#xff0c;我把睡觉功法交给你&#xff0c;这样就可以睡好了。

『大模型笔记』提示工程、微调和RAG之间对比

提示工程、微调和RAG之间对比 文章目录 一. 提示工程、微调和RAG之间对比二. 参考文章文章:Prompt Engineering vs Finetuning vs RAG一. 提示工程、微调和RAG之间对比 Prompt EngineeringFinetuning

C++ 字符串完全指南:学习基础知识到掌握高级应用技巧

C 字符串 字符串用于存储文本。 一个字符串变量包含由双引号括起来的一组字符&#xff1a; 示例 创建一个 string 类型的变量并为其赋值&#xff1a; string greeting "Hello";C 字符串连接 字符串连接可以使用 运算符来实现&#xff0c;生成一个新的字符串。…

spikingjelly学习-使用单层全连接snn脉冲神经网络识别mnist数据集

连接【https://spikingjelly.readthedocs.io/zh-cn/0.0.0.0.14/activation_based/lif_fc_mnist.html】 【训练代码的编写需要遵循以下三个要点&#xff1a; 脉冲神经元的输出是二值的&#xff0c;而直接将单次运行的结果用于分类极易受到编码带来的噪声干扰。因此一般认为脉冲…

逆向工程-Nag.exe

初步分析 首先&#xff0c;打开文件&#xff0c;进行文件初步探索。 然后&#xff0c;点击OK发现删除本界面并跳转到新的界面&#xff0c;并且需要我们去除弹出的窗口。 正式分析 拖拽进IDA Pro 和OllyDbg中进行分析。 根据我们初步测试的结果&#xff0c;我们知道一个重要线索…

LeetCode-热题100:153. 寻找旋转排序数组中的最小值

题目描述 已知一个长度为 n 的数组&#xff0c;预先按照升序排列&#xff0c;经由 1 到 n 次 旋转 后&#xff0c;得到输入数组。例如&#xff0c;原数组 nums [0,1,2,4,5,6,7] 在变化后可能得到&#xff1a; 若旋转 4 次&#xff0c;则可以得到 [4,5,6,7,0,1,2] 若旋转 7 次…