c++运算符重载

来源:互联网 发布:js 数组长度限制 编辑:程序博客网 时间:2024/05/01 06:42
<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>

0 0
原创粉丝点击