1 单目运算
#include<iostream>
using namespace std;
//复数
class Complex{
public:
double real,image;
Complex()=default;
Complex(double r, double i)
:real(r),image(i){}
~Complex(){}
Complex operator++(int i)
{
Complex tmp;
tmp.real = this->real++;
tmp.image = this->image++;
return tmp;
}
Complex operator++()
{
this->real++;
this->image++;
return *this;
}
};
int main()
{
Complex c1(10,20);
Complex c2;
// c2 = c1++;
c2 = ++c1;
cout<<c1.real<<endl;
cout<<c1.image<<endl;
cout<<c2.real<<endl;
cout<<c2.image<<endl;
return 0;
}
2 双目运算符重载complex.cpp
#include<iostream>
using namespace std;
//复数
class Complex{
public:
double real,image;
Complex()=default;
Complex(double r, double i)
:real(r),image(i){}
~Complex(){}
Complex add(Complex c)
{
Complex tmp;
tmp.real = this->real+ c.real;
tmp.image= this->image+c.image;
return tmp;
}
Complex operator+(Complex c)
{
Complex tmp;
tmp.real = this->real+ c.real;
tmp.image= this->image+c.image;
return tmp;
}
friend Complex operator-(Complex c1,Complex c2);
};
Complex operator-(Complex c1,Complex c2)
{
Complex tmp;
tmp.real = c1.real - c2.real;
tmp.image= c1.image-c2.image;
return tmp;
}
int main()
{
Complex c1(10,20);
Complex c2(10,20);
Complex c3 ;
c3 = c1+c2;
// c3 = c1.add(c2);
cout<<c3.real<<endl;
cout<<c3.image<<endl;
c1 = c3 - c3;
cout<<c1.real<<endl;
cout<<c1.image<<endl;
return 0;
}