#include<iostream>
using namespace std;
class Complex
{
private:
double real;
double imag;
public:
Complex();
Complex(double r,double i);
Complex operator+(Complex &t1);//重载运算符+;
friend istream&operator>>(istream &,Complex &);//重载运算符>>;
friend ostream&operator<<(ostream &,Complex &);//重载运算符<<;
/*一定定义为友元函数或者成员函数;*/
};
int main()
{
Complex t1;
Complex t2;
Complex t3;
cin>>t1;//使用重载运算符给t1赋值;
cin>>t2;//使用重载函数给t2赋值;
cout<<"t1="<<t1;
cout<<"t2="<<t2;
t3=t1+t2;
cout<<"this complex is :"<<t3;
}
Complex::Complex()
{
real=0;
imag=0;
}
Complex::Complex(double r,double i)
{
real=r;
imag=i;
}
Complex Complex::operator+(Complex &t1)//定义重载运算符+
{
Complex t4;
t4.real=this->real+t1.real;
t4.imag=this->imag+t1.imag;
return t4;
}
istream&operator>>(istream &input,Complex &t)//定义重载运算符>>
{
cout<<"please input complex"<<endl;
input>>t.real>>t.imag;
return input;
}
ostream&operator<<(ostream &output,Complex &t)//定义重载运算符<<
{
output<<"("<<t.real<<"+"<<t.imag<<"i)"<<endl;
return output;
}