7-1 复数类的运算

#include<iostream>
using namespace std;

class Complex
{
public:
Complex(double r = 0, double i = 0) :real(r), imag(i) { }
Complex operator+(Complex& c2) const;//重载双目运算符'+'
Complex operator-=(Complex& c2); //重载双目运算符'-='
friend Complex operator-(Complex& c1, Complex& c2);//重载双目运算符'-'
void Display() const;
private:
double real;
double imag;
};
Complex Complex::operator +(Complex& c2) const
{
Complex temp;
temp.real = this->real + c2.real;
temp.imag = this->imag + c2.imag;
return temp;
}
Complex Complex::operator-=(Complex& c2)
{
//Complex temp;
//temp.real = this->real - c2.real;
//temp.imag = this->imag - c2.imag;
//return temp;

this->real = this->real - c2.real;
this->imag = this->imag - c2.imag;
return *this;
}
Complex operator-(Complex &c1,Complex& c2)
{
Complex temp;
temp.real = c1.real - c2.real;
temp.imag = c1.imag - c2.imag;
return temp;
}
void Complex::Display() const
{
cout << "(" << real << ", " << imag << ")" << endl;
}

int main()
{
double r, m;
cin >> r >> m;
Complex c1(r, m);
cin >> r >> m;
Complex c2(r, m);
Complex c3 = c1 + c2;
c3.Display();
c3 = c1 - c2;
c3.Display();
c3 -= c1;
c3.Display();
return 0;
}

posted @   a_true  阅读(40)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示