C++运算符重载的问题,菜鸟,求助
#include <iostream>
using namespace std;
class Complex
{private:
int real, imag;
public:
Complex(int a, int b):real(a),imag(b){}
Complex(){real=imag=0;}
Complex operator+(Complex&);
Complex operator-();
Complex operator+(int);
Complex &operator=(Complex&);
Complex &operator++();
Complex operator++(int);
friend ostream &operator<<(ostream&, Complex&);
friend istream &operator>>(istream&, Complex&);
};
Complex Complex::operator+(Complex&a)
{return Complex(real+a.real,imag+a.imag);}
Complex Complex::operator+(int a)
{return Complex(real+a, imag);}
Complex Complex::operator-()
{return Complex(real, imag);}
Complex &Complex::operator=(Complex&a)
{
real = a.real;
imag = a.imag;
return *this;
}
Complex &Complex::operator++()
{
real++,imag++;
return *this;
}
Complex Complex::operator++(int)
{
Complex a(*this);
real++,imag++;
return a;
}
ostream& operator<<(ostream&out, Complex&a)
{
out<<a.real<<"+"<<a.imag<<"i"<<endl;
return out;
}
istream& operator>>(istream&in, Complex&a)
{
cout<<"请输入一个复数:";
in>>a.real>>a.imag;
return in;
}
int main()
{
Complex c1(1,2), c2(2,1), c3, c4;
int d1 = 1;
cin>>c3;
cout<<c3;
c4 = c1 + c2;
cout<<c4;
cout<<c1+d1;
cout<<-c1;
c1 = c2;
cout<<c1;
cout<<c1++;
cout<<++c1;
return 0;
}
//4.定义复数类Complex,并重载相关运算符,使得可以进行如下运算:
//c1+c2;d1+c1;-c1;c1=c2;c++;++c(表示实部和虚部都加1);cout<<c1;cin>>c1;
//其中,c1、c2表示复数,d1表示实数。
#include <iostream>
#include <string>
using namespace std;
class Complex
{private:
int real, imag;
public:
Complex(int a, int b):real(a),imag(b){}
Complex(){real=imag=0;}
Complex operator+(Complex&);
Complex operator-();
Complex operator+(int);
Complex &operator=(const Complex&);
Complex &operator++();
Complex operator++(int);
friend ostream &operator<<(ostream&, const Complex&);
friend istream &operator>>(istream&, Complex&);
};
Complex Complex::operator+(Complex& a)
{return Complex(real+a.real,imag+a.imag);}
Complex Complex::operator+(int a)
{return Complex(real+a, imag);}
Complex Complex::operator-()
{return Complex(real, imag);}
Complex &Complex::operator=(const Complex& a)
{
real = a.real;
imag = a.imag;
return *this;
}
Complex &Complex::operator++()
{
real++,imag++;
return *this;
}
Complex Complex::operator++(int)
{
Complex a(*this);
real++,imag++;
return a;
}
ostream& operator<<(ostream& out, const Complex& a)
{
out<<a.real<<"+"<<a.imag<<"i"<<endl;
return out;
}
istream& operator>>(istream& in, Complex& a)
{
cout<<"请输入一个复数:";
in>>a.real>>a.imag;
return in;
}
int main()
{
Complex c1(1,2), c2(2,1), c3, c4;
int d1 = 1;
cin>>c3;
cout<<c3;
c4 = c1 + c2;
cout<<c4;
cout<<c1+d1;
cout<<-c1;
c1 = c2;
cout<<c1;
cout<<c1++;
cout<<++c1;
return 0;
}