4-1 复数类的运算符重载
Time Limit: 1000MS Memory Limit: 65536KB
Problem Description
通过本题目的练习可以掌握成员运算符重载及友元运算符重载
要求定义一个复数类,重载加法和减法运算符以适应对复数运算的要求,重载插入运算符(<<)以方便输出一个复数的要求。
Input
要求在主函数中创建对象时初始化对象的值。
Output
输出数据共有4行,分别代表a,b的值和它们求和、求差后的值
Example Input
无
Example Output
a=3.2+4.5i b=8.9+5.6i a+b=12.1+10.1i a-b=-5.7-1.1i
#include <bits/stdc++.h>
using namespace std;
class Complex
{
double real,imag;
public:
Complex(double r=0, double i=0)
{
real = r;
imag = i;
}
void show()
{
cout <<real;
if(imag>=0){cout << '+';}
//else {cout << '-';}
cout<< imag << 'i' <<endl;
}
Complex operator+(Complex &c2)
{
Complex c;
c.real = real + c2.real;
c.imag = imag + c2.imag;
return c;
}
Complex operator-(Complex &c2)
{
Complex c;
c.real = real - c2.real;
c.imag = imag - c2.imag;
return c;
}
};
int main()
{
Complex c1(3.2,4.5),c2(8.9,5.6),c3,c4;
c3 = c1 + c2;
c4 = c1 - c2;
cout << "a=";
c1.show();
cout << "b=";
c2.show();
cout << "a+b=";
c3.show();
cout << "a-b=";
c4.show();
//cout << "Hello world!" << endl;
return 0;
}