首页 > 其他分享 >R6-2 复数的加减运算(运算符重载)

R6-2 复数的加减运算(运算符重载)

时间:2023-04-15 11:35:10浏览次数:48  
标签:real R6 CComplex imag 运算符 operator 复数 重载

  1. 声明一个复数类CComplex(类私有数据成员为double型的real和image)
  2. 定义构造函数,用于指定复数的实部与虚部。
  3. 重载<<运算符,以格式real+image i的格式输出当前对象(当虚部为非负数时,实部虚部中间用+号连接,当虚部为负数时,实部虚部用-号连接:如3+4i,3-4i,3+0i)。
  4. 重载+运算符,实现两个复数对象之和(实部虚部分别相加)。
  5. 重载-运算符,实现两个复数对象的差(实部虚部分别相减)。

输入格式:
输入有两行:
第一行是复数c1的实部与虚部,以空格分隔;
第二行是复数c2的实部与虚部,以空格分隔。

输出格式:
输出共四行:
第一行是c1;
第二行是c2;
第三行是c1与c2之和;
第四行是c1与c2之差;

输入样例:

10 20
30 40
二:

 


三:
 1 #include<bits/stdc++.h> //万能头文件 
 2 using namespace std;
 3  class CComplex
 4 {
 5     public:
 6     CComplex(){real=0;imag=0;}//无参构造函数 
 7     CComplex(double r, double i){ real=r, imag=i;}//有参构造函数 
 8     friend istream &operator <<(istream &  ,CComplex & );//输入流重载
 9     friend ostream &operator >>(ostream &  ,CComplex & );//输出流重载    固定格式 友元函数; 
10         CComplex operator+(CComplex c)    {
11           return CComplex(real+c.real,imag+c.imag);
12       }
13       CComplex operator-(CComplex c){
14         return CComplex(real-c.real,imag-c.imag);
15     }
16            double real,imag;
17 };
18 istream &operator >>(istream & is,CComplex &c){
19     is>>c.real>>c.imag;
20   return is;
21 }
22 ostream &operator <<(ostream & os ,CComplex& c ){
23     os<<c.real<<showpos<<c.imag<<"i"<<noshowpos<<endl;//showpos,noshowpos,使用时固定格式,显示虚部正负号 
24   return os;
25 }
26   int main() {
27     double r1,r2,i1,i2;
28     cin>>r1>>i1;
29     cin>>r2>>i2;
30     CComplex c1(r1,i1),c2(r2,i2),c3,c4;
31     cout<<c1; //直接输出对象,提示输入流、输出流重载 
32     cout<<c2;
33     c3=c1+c2;
34     cout<<c3;
35     c4=c1-c2;
36     cout<<c4;
37     return 0;
38 }

 

输出样例:

10+20i
30+40i
40+60i
-20-20i

标签:real,R6,CComplex,imag,运算符,operator,复数,重载
From: https://www.cnblogs.com/liubingyu/p/17320755.html

相关文章

  • 逍遥自在学C语言 | 位运算符<<的高级用法
    前言在上一篇文章中,我们介绍了~运算符的高级用法,本篇文章,我们将介绍<<运算符的一些高级用法。一、人物简介第一位闪亮登场,有请今后会一直教我们C语言的老师——自在。第二位上场的是和我们一起学习的小白程序猿——逍遥。二、计算2的整数次幂代码示例#includ......
  • 数据类型和运算符
    1.整数类型TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)、BIGINT2.浮点数类型和定点数类型浮点类型:FLOAT、DOUBLE。定点类型:DECIMAL3.日期与时间类型DATETIME、DATE、TIMESTAMP、TIME、YEAR4.字符串类型CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET5.二进制类型BI......
  • 逍遥自在学C语言 | 位运算符~的高级用法
    前言在上一篇文章中,我们介绍了^运算符的高级用法,本篇文章,我们将介绍~运算符的一些高级用法。一、人物简介第一位闪亮登场,有请今后会一直教我们C语言的老师——自在。第二位上场的是和我们一起学习的小白程序猿——逍遥。二、相反数我们可以利用负数的补码性......
  • 表达式之运算符
    表达式必须是由值和运算符组合起来的var声明变量的关键字sum变量的名字=赋值号1+1+2表达式varsum=1+1+2;console.log(sum);varusername="你"+"好";//输出你好运算符"!"感叹号非,取反,求反"||"或,如果前面的值为true则不执行后面的,否则会执行......
  • CNC工艺全铝外壳5G模组搭配R6S R6C使用演示 RM500U FM650
    关键词:CNC工艺USB3.0typeC全铝外壳R6SR6CRK3588FM650RM500U5GLTEOpenWrtMcuzone野芯科技概述:CNC工艺全铝外壳5G模组在R6S上配置使用演示硬件平台:CNC工艺全铝外壳5G模组R6SR6C软件平台:OpenWrt系统镜像文件:rk3588-usb-friendlywrt-22.03-docker-20230314实物连......
  • A572Gr65钢板化学成分、A572Gr65力学性能、A572Gr65期货订轧
    一、A572Gr65钢板简介:ASTMA572系列钢是按美国标准生产的,主要用于制造输电线路钢管塔、通讯钢管塔、路灯杆、美化树和变电站构架等产品。该钢种具有低碳低硅,高强度,高韧性的特点,通过对微量元素的控制,增强了镀锌锌层的附着力,长期使用不发黑,完全保证了热浸镀锌的质量,并可进行各种表面......
  • js new运算符
    1、new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。(通过构造函数来创建一个实例对象)2、new做了什么?   ①创建一个临时对象 ②为该临时对象添加属性 __proto__,将该属性链接至构造函数的原型对象(绑定原型)③将this指向该临时对象......
  • 逍遥自在学C语言 | 位运算符^的高级用法
    前言在上一篇文章中,我们介绍了|运算符的高级用法,本篇文章,我们将介绍^运算符的一些高级用法。一、人物简介第一位闪亮登场,有请今后会一直教我们C语言的老师——自在。第二位上场的是和我们一起学习的小白程序猿——逍遥。二、交换两个变量的值#include<stdio.h>......
  • 逍遥自在学C语言 位运算符 "|" 的5种高级用法
    前言在上一篇文章中,我们介绍了&运算符的高级用法,本篇文章,我们将介绍|运算符的一些高级用法。一、人物简介第一位闪亮登场,有请今后会一直教我们C语言的老师——自在。第二位上场的是和我们一起学习的小白程序猿——逍遥。二、将两个字节合并成一个16位整数#inclu......
  • Java-Day-8(方法重载 + 可变参数 + 作用域 + 构造方法 + this 关键字 )
    Java-Day-8方法重载(Overload)java中允许同一个类中,多个同名方法的存在,但要求形参列表不一致在调用方法时,通过所给的参数来选择执行的是哪个方法重载好处减轻了起名的麻烦减轻了记名的麻烦注意细节方法名必须相同参数列表必须不同形参类型或个数或顺序,......