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…

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

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

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语言基础系列…

ubuntu的常用操作

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

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

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

冥想打坐睡觉功法

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

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

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

逆向工程-Nag.exe

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

Vercel应用绑定自己的域名

准备域名 首先购买自己的域名&#xff0c;可以选择以下渠道进行购买&#xff1a; NamesiloGodaddy腾讯云阿里云 另外你还可以选择从以下平台获取到免费的域名&#xff1a; Freenomeu.org 欧盟组织的免费域名, 需要英国的用户信息才能注册; 在我看来免费的才是最贵的&#…

Rsyslog 日志集中管理实验

1.使用 进行日志集中管理 C/S 架构&#xff1a;客户端将其日志上传到服务器端&#xff0c;通过对服务器端日志的查询&#xff0c;来实现对其他客户端的日志进行集中管理 2.两台机器&#xff1a; &#xff08;server&#xff09;host-5(192.168.1.2)<------------>(192…

一招让你的薪水暴增,每个程序员都应该学会跟老板提加薪

为什么要学会薪资谈判&#xff1f; 在最近的一篇文章中&#xff0c;职业专家奥斯汀贝尔卡克 (Austin Belcak ) 解释了进行一点薪资谈判如何对您的长期收入产生巨大影响。 这是奥斯汀在他的薪资谈判示例中描绘的场景&#xff1a; Amari 和 Taylor 的年薪均为 50,000 美元 未来…

【QT入门】 Qt代码创建布局之水平布局、竖直布局详解

往期回顾&#xff1a; 【QT入门】 Qt实现自定义信号-CSDN博客 【QT入门】 Qt自定义信号后跨线程发送信号-CSDN博客 【QT入门】 Qt内存管理机制详解-CSDN博客 【QT入门】 Qt代码创建布局之水平布局、竖直布局详解 先看两个问题&#xff1a; 1、ui设计器设计界面很方便&#xf…

spring-boot-devtools配置和原理

一、前言 昨天&#xff0c;一个同事Eclipse在启动SpringBoot项目时一直不停地加载&#xff0c;后来发现是因为spring-boot-devtools造成的问题&#xff0c;因为我们把日志输出的目录设置在当前项目里&#xff08;~/mnt/logs/&#xff0c;这样设置是因为mac电脑没有根目录权限&…

摸鱼工具—终端热搜榜,实在是上班摸鱼必备之工具,妙啊

本文介绍我用Python语言开发的热搜榜&#xff0c;聚合有百度、头条、微博、知乎和CSDN等网站热搜信息。该工具运行于终端中&#xff0c;比如cmder、powershell或者git bash等&#xff0c;实在是上班、摸鱼之必备工具。 —、工具执行效果 1.1 项目代码 项目代码地址存在gitee中…

Linux用户及用户组权限

一、用户和用户组 功能项命令实例作用用户组cat /etc/group查看当前系统存在的用户组groupadd testing添加一个新的用户组testingcat /etc/group查看组是否被新增成功groupmod -n test testing将testing重命名成testgroupdel test删除组testgroups root查看用户root所在的所有…

linux centos7中使用 Postfix 和Dovecot搭建邮件系统

作者主页&#xff1a;点击&#xff01; Linux专栏&#xff1a;点击&#xff01; Postfix Postfix是一个开源的邮件传输代理&#xff08;MTA&#xff09;&#xff0c;用于路由和传送电子邮件。它是一个可靠、安全且高性能的邮件服务器软件&#xff0c;常用于搭建邮件系统的核心…