#include<iostream>
using namespace std;
class Complex
{
public: //构造函数的重载
Complex(){real=0;imag=0;} //默认的初始化
Complex(double r){real=r;imag=0;} //缺省的初始化
Complex(double r,double i){real=r;imag=i;} //完全的初始化
friend Complex operator + (Complex c1,Complex c2); //运算符重定义
friend ostream& operator << (ostream&,Complex&); //输出流重定义
friend istream& operator >> (istream&,Complex&); //输入流重定义
void display(Complex &);
private:
double real;
double imag;
};
Complex operator + (Complex c1,Complex c2)
{
return Complex(c1.real+c2.real,c1.imag+c2.imag);
}
ostream& operator << (ostream& output,Complex& c)
{
output <<"(";
if(c.real!=0)
{
cout<<c.real;
if(c.imag>0)
cout<<"+"<<c.imag<<"i)";
else if(c.imag<0)
cout<<c.imag<<"i)";
else cout<<")";
}
else
{
if(c.imag!=0)
cout<<c.imag<<"i)";
else cout<<0;
}
return output;
}
istream& operator >> (istream& input,Complex& C)
{
cout<<"Please input the Complex number:";
input>>C.real>>C.imag;
return input;
}
void Complex::display(Complex &c1) //复数显示
{
cout<<"The Complex number is:"<<c1<<endl;
}
int main()
{
Complex c1(1,2),c2(2,1),c3,c4;
c1.display(c1);
c1.display(c2);
c1.display(c1+c2);
c3=c1+2.5;
c1.display(c3);
c1.display(2+c2);
cin>>c4;
cout<<c4<<endl;
return 0;
}
c++ 构造函数重定义 + 运算符重载、流重载
最新推荐文章于 2024-06-21 14:20:12 发布