<span style="font-size:18px;">#include<iostream>
using namespace std;
class Complex
{
public:
Complex(){real=0,image=0;};
Complex(double,double);
Complex operator++(int);
Complex& operator++();
Complex& operator--();
Complex operator+(const Complex &);
Complex operator-(const Complex &);
Complex operator*(const Complex &);
//Complex& operator+=(Complex &);
//Complex& operator-=(Complex &);
//iostream & operator<<(iostream &);
//iostream & operator>>(iostream &);
double getReal();
double getimage();
//private:
double real;
double image;
};
Complex::Complex(double r,double i)
{
real=r;
image=i;
};
Complex& Complex::operator++()
{
real++;
image++;
return *this;
}
Complex Complex::operator++(int a)
{
Complex temp=*this;
real++;
image++;
return temp;
}
Complex& Complex::operator--()
{
real--;
image--;
return *this;
};
Complex Complex::operator+(const Complex &a)
{
return Complex(real+a.real,image+a.image);
};
Complex Complex::operator-(const Complex &a)
{
return Complex(real-a.real,image-a.image);
};
Complex Complex::operator*(const Complex &a)
{
return Complex(real*a.real,image*a.image);
};
/*Complex& Complex::operator+=(Complex &a)
{
real+=a.real;
image+=a.image;
return *this;
};*/
/*Complex& Complex::operator-=(Complex &a)
{
real-=a.real;
image-=a.image;
return *this;
};*/
Complex& operator+=(Complex &a,const Complex &b)
{
a.real+=b.real;
a.image+=b.image;
return a;
};
Complex& operator-=(Complex &a,const Complex &b)
{
a.real-=b.real;
a.image-=b.image;
return a;
};
ostream &operator<<( ostream &out,const Complex &a)
{
//out<<"("<<a.real<","<<a.image<<")"<<endl;
out<<"("<<a.real<<","<<a.image<<")";
return out;
};
istream &operator>>(istream &in,Complex &a)
{
in>>a.real>>a.image;
return in;
};
int main()
{
Complex a;
cout<<"请输入一个复数:"<<endl;
cin>>a;
cout<<"你输入的数是:"<<a<<endl;
Complex b;
cout<<"a:"<<a<<" b:"<<b<<endl;
b=a++;
cout<<"b=a++ :"<<b<<endl;
cout<<"a:"<<a<<" b:"<<b<<endl;
b=++a;
cout<<"b=++a :"<<b<<endl;
b=Complex(10,10);
Complex c;
c=a+b;
cout<<"a:"<<a<<" b:"<<b<<endl;
cout<<"a+b:"<<c<<endl;
c=a-b;
cout<<"a:"<<a<<" b:"<<b<<endl;
cout<<"a-b: "<<c<<endl;
c=a*b;
cout<<"a:"<<a<<" b:"<<b<<endl;
cout<<"a*b: "<<c<<endl;
cout<<"a:"<<a<<" b:"<<b<<endl;
a+=b;
cout<<"a+=b: "<<a<<endl;
cout<<"a:"<<a<<" b:"<<b<<endl;
a-=b;
cout<<"a-=b: "<<a<<endl;
//之前我定义了一个条件编译条件没想到 编译器中居然有相同的宏 结果老是编译不过去 坑!!
//#ifndef COMPLEX_H
//cout<<"error!!"<<endl;
//#endif
return 0;
}</span>
c++运算符重载
最新推荐文章于 2025-08-20 00:00:00 发布