1.完成四个默认成员函数
2.比较运算符
2.比较运算符
3.前置后置++和+/+=的实现
程序代码
class Complex
{
protected:
double _real;
double _image;
public:
// 1.完成四个默认成员函数
Complex(double real = 0.0, double image = 0.0)//构造函数
{
_real = real;
_image = image;
}
Complex(const Complex& c) //拷贝构造函数
{
_real = c._real;
_image = c._image;
}
~Complex() //析构函数
{
cout << "~Complex()" << endl;
}
//赋值运算符的重载
Complex& operator=(const Complex& c)
{
cout << "Complex& operator=(const Complex& c)" << endl;
if (this != &c)
{
_real = c._real;
_image = c._image;
}
return *this;
}
void Display()
{
cout << _real << "-" << _image << endl;
}
//2.比较运算符
//c1>c2
bool operator>(const Complex& c)
{
while (_image == 0)
{
if (_real > c._real)
return true;
else
return false;
}
}
//c1=c2
bool operator==(const Complex& c)
{
return _real==c._real&&_image==c._image;
}
//c1>=c2
bool operator>=(const Complex& c)
{
return *this > c || *this == c;
}
//c1<c2
bool operator<(const Complex& c)
{
return !(*this >= c);
}
//c1<=c2
bool operator<=(const Complex& c)
{
return !(*this>c);
}
//c1!=c2
bool operator!=(const Complex& c)
{
return !(*this==c);
}
// 3.前置后置++和+/+=的实现
//前置++
Complex& operator++()
{
this->_real += 1;
return *this;
}
//后置++
Complex operator++(int)
{
Complex tmp(*this);
this->_real += 1;
return tmp;
}
//c1+2.0
Complex operator+(double real)
{
Complex tmp(*this);
tmp._real += real;
return tmp;
}
//c1+=2.0
Complex operator+=(double real)
{
*this = *this + real;
return *this;
}
};
int main()
{
Complex c1(3.0, 5.0);
Complex c2 = c1 + 1.0;
c2.Display();
system("pause");
return 0;
}
运行结果