/* 重载 << >>运算符:
1.实际上已经重载过 左移 右移;输入输出
2.cin cout 是两个输入输出流对象 */
#include<iostream>
using namespace std;
class Complex{
public:
Complex(double r,double i)
{ real=r; imag=i;}
Complex()
{ real=0; imag=0;}
friend Complex operator+(Complex,Complex); //重载+运算符
friend ostream &operator<<(ostream &,Complex &); //重载<<运算符
friend istream &operator>>(istream &,Complex &); //重载>>运算符
private:
double real,imag;
};
Complex operator+(Complex a,Complex b)
{
Complex temp;
temp.real=a.real+b.real;
temp.imag=a.imag+b.imag;
return temp;
}
ostream &operator<<(ostream &out,Complex &obj)
{
out<<obj.real;
if (obj.imag>0) out<<"+";
if(obj.imag !=0) out<<obj.imag<<"i ";
return out;
}
istream &operator>>(istream &in,Complex &obj)
{
cout<<"请输入复数实部和虚部的值:"<<endl;
in>>obj.real;
in>>obj.imag;
return in;
}
int main()
{ Complex c1(1.1,2.2),c2,c3;
cin>>c2;
c3=c1+c2;
cout<<"复数c1的值是:"<<c1<<endl;
cout<<"复数c2的值是:"<<c2<<endl;
cout<<"复数c3的值是:"<<c3<<endl;
system("pause");
return 0;
}
1.实际上已经重载过 左移 右移;输入输出
2.cin cout 是两个输入输出流对象 */
#include<iostream>
using namespace std;
class Complex{
public:
Complex(double r,double i)
{ real=r; imag=i;}
Complex()
{ real=0; imag=0;}
friend Complex operator+(Complex,Complex); //重载+运算符
friend ostream &operator<<(ostream &,Complex &); //重载<<运算符
friend istream &operator>>(istream &,Complex &); //重载>>运算符
private:
double real,imag;
};
Complex operator+(Complex a,Complex b)
{
Complex temp;
temp.real=a.real+b.real;
temp.imag=a.imag+b.imag;
return temp;
}
ostream &operator<<(ostream &out,Complex &obj)
{
out<<obj.real;
if (obj.imag>0) out<<"+";
if(obj.imag !=0) out<<obj.imag<<"i ";
return out;
}
istream &operator>>(istream &in,Complex &obj)
{
cout<<"请输入复数实部和虚部的值:"<<endl;
in>>obj.real;
in>>obj.imag;
return in;
}
int main()
{ Complex c1(1.1,2.2),c2,c3;
cin>>c2;
c3=c1+c2;
cout<<"复数c1的值是:"<<c1<<endl;
cout<<"复数c2的值是:"<<c2<<endl;
cout<<"复数c3的值是:"<<c3<<endl;
system("pause");
return 0;
}