复数运算符的重载

复数运算符的重载

代码

#include"pch.h"
#include <iostream>
using namespace std;
class Complex {
public:
 Complex (double real = 0,double imgic = 0):_real(real),_imgic(imgic){}
 Complex operator + (const Complex &num);
 Complex operator - (const Complex &num);
 Complex operator * (const Complex &num);
 Complex operator / (Complex &num);
 Complex operator ~ ();
 friend ostream & operator <<(ostream &out, const Complex &num)
 {
  if (num._imgic < 0.0)
  {
   out << "(" << num._real << " - " << -num._imgic << "i" << ")";
  }
  else
  {
   out << "(" << num._real << " + " << num._imgic << "i" << ")";
  }
  return out;
 }
 friend istream & operator >>(istream &in, Complex &num)
 {
  in >> num._real;
  in >> num._imgic;
  return in;
 }
private:
 double _real;
 double _imgic;
};
Complex Complex::operator +(const Complex &num)
{
 return Complex(_real + num._real, _imgic + num._imgic);
}
Complex Complex::operator -(const Complex &num)
{
 return Complex(_real - num._real, _imgic - num._imgic);
}
Complex Complex::operator *(const Complex &num)
{
 return Complex((_real * num._real-_imgic * num._imgic), (_imgic * num._real + _real * num._imgic));
}
Complex Complex::operator /(Complex &num)
{
 return Complex(((*this * (~num))._real) /((num*(~num))._real), ((*this*(~num))._imgic) / ((num*(~num))._real));
}
Complex Complex::operator ~()
{
 return Complex(_real,-_imgic);
}
int main() 
{
 Complex complex1, complex2, complex3;
 cin >> complex1 >> complex2;
 cout << "These two complex Numbers are:" << endl << complex1 << endl << complex2<<endl;
 cout << complex1 << " + "<<complex2 << "=" << complex1 + complex2<<endl;
 cout << complex1 << " - " << complex2 << "=" << complex1 - complex2 << endl;
 cout << complex1 << " * " << complex2 << "=" << complex1 * complex2 << endl;
 cout << complex1 << " / " << complex2 << "=" << complex1 / complex2 << endl;
 return 0;

运行结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值