题目内容:
定义一个复数类Complex,用成员函数重载加法运算符(+),用友元函数重载乘法运算符(),以适用对复数运算的要求。具体要求如下:
(1) 私有数据成员
● double real, iamge; real为实部,image为虚部。
(2) 公有成员函数
● Complex():无参构造函数,将real和image分别设置为0。
● Complex(double r,double i):有参构造函数,分别用r和i初始化real和image。
● Complex operator+(Complex &):用成员函数重载加法运算。
● void print():输出函数。如果real和image为都为0,则输出:0+0i;
(3)友元函数
● friend Complex operator(Complex &, Complex &):用友元函数重载乘法运算。
(4) 在主函数中定义三个复数对象c1(1,2)、c2(3,4)和c3,输出c1和c2,然后将c1+c2赋值给c3,输出c3,然后将c1*c2赋值给c3,输出c3。
输出示例:
1+2i
3+4i
4+6i
-5+10i
如下:
#include <iostream>
using namespace std;
class Complex
{
private:
double real, iamge;
public:
Complex(){real=0;iamge = 0;}
Complex(double r,double i){real=r;iamge = i;}
Complex operator+(Complex &c)
{
Complex d;
d.real = real + c.real;
d.iamge = iamge + c.iamge;
return d;
}
void print()
{
cout << real << "+" << iamge <<"i"<<endl;
}
friend Complex operator*(Complex &, Complex &);
};
Complex operator*(Complex &a, Complex &b)
{
Complex c;
c.real = a.real * b.real - a.iamge*b.iamge;
c.iamge = a.iamge * b.real + a.real*b.iamge;
return c;
}
int main()
{
Complex c1(1,2),c2(3,4),c3;
c1.print();
c2.print();
c3 = c1+c2;
c3.print();
c3 = c1*c2;
c3.print();
return 0;
}