3.
定义一个复数类
Complex
,使得代码能够进行下面的工作
(20
分
)
:
Complex c1(3, 5); //
用复数
3+5i
初始化
c1
Complex c2 = 4.5; //
用实数
4.5
初始化
c2
c3=c1+c2; //
将
c1
与
c2
相加,结果保存在
c3
中
c3.show(); //
将
c3输出(这时的结果应该是
7.5+5i
)
#include<iostream>
using namespace std;
class Complex{
public:
Complex(double r=0,double i=0);
//复制构造函数
Complex(Complex &p):real(p.real),imag(p.imag){}
~Complex(){} //析构函数
void show();
Complex operator+(Complex &c); //对运算符+重载的函数
private:
double real,imag;
};
Complex::Complex(double r,double i):real(r),imag(i){}
Complex Complex::operator+(Complex &c){ //定义重载运算符+的函数
Complex z;
z.real=real+c.real; //实现两个实部相加
z.imag=imag+c.imag; //实现两个虚部相加
return z;
}
void Complex::show(){
cout<<real<<"+"<<imag<<"i"<<endl; //输出为复数形式
}
int main()
{
Complex c1(3,5),c2(4.5,0),c3;//定义对象的同时初始化
c3=c2+c1; //重载后的运算符用于复数运算
cout<<"c1+c2=";
c3.show();
return 0;
}