复数类

#define _CRT_SECURE_NO_WARNINGS 1

#include<iostream>

using namespace std;

class Complex

{

public:

void display( )

{

/*cout << "real:" << this->_real << endl;

cout << "image:" << this->_image << endl;*/

cout << this->_real << "+" << this->_image << "i" << endl;

}

Complex operator+(const Complex& a)

{

Complex tem;

tem._real = this->_real + a._real;

tem._image = this->_image + a._image;

return tem;

}

Complex operator-(const Complex& a)

{

Complex tem;

tem._real = this->_real - a._real;

tem._image = this->_image - a._image;

return tem;

}

Complex operator*(const Complex& a)

{

Complex tem;

tem._real = this->_real * a._real;

tem._image = this->_image * a._image;

return tem;

}

Complex operator/(const Complex& a)

{

Complex tem;

tem._real = this->_real / a._real;

tem._image = this->_image / a._image;

return tem;

}

void operator+=(const Complex& a)

{

this->_real = this->_real + a._real;

this->_image = this->_image + a._image;

}

void operator-=(const Complex& a)

{

this->_real = this->_real - a._real;

this->_image = this->_image - a._image;

}

void operator*=(const Complex& a)

{

this->_real = this->_real * a._real;

this->_image = this->_image * a._image;

}

void operator/=(const Complex& a)

{

this->_real = this->_real / a._real;

this->_image = this->_image / a._image;

}

Complex operator++(int)//huozhi

{

Complex tem(*this);

this->_real += 1;

this->_image += 1;

return tem;

}

Complex& operator++()

{

this->_real += 1;

this->_image += 1;

return *this;

}

Complex operator--(int)//huozhi

{

Complex tem(*this);

this->_real -= 1;

this->_image -= 1;

return tem;

}

Complex& operator--()

{

this->_real -= 1;

this->_image -= 1;

return *this;

}

bool operator>(const Complex& a)

{

double m = pow(this->_real, 2) + pow(this->_image, 2);

double n = pow(a._real, 2) + pow(a._image, 2);

return (m > n);

}

bool operator<(const Complex& a)

{

double m = pow(this->_real, 2) + pow(this->_image, 2);

double n = pow(a._real, 2) + pow(a._image, 2);

return (m < n);

}

bool operator>=(const Complex& a)

{

double m = pow(this->_real, 2) + pow(this->_image, 2);

double n = pow(a._real, 2) + pow(a._image, 2);

return (m > n || m == n);

}

bool operator<=(const Complex& a)

{

double m = pow(this->_real, 2) + pow(this->_image, 2);

double n = pow(a._real, 2) + pow(a._image, 2);

return (m < n || m == n);

}

bool operator==(const Complex& a)

{

double m = pow(this->_real, 2) + pow(this->_image, 2);

double n = pow(a._real, 2) + pow(a._image, 2);

return (m == n);

}

public:

Complex(double real = 0.0, double image = 0.0)

{

this->_real = real;

this->_image = image;

}

Complex(Complex& a)

{

this->_real = a._real;

this->_image = a._image;

}

~Complex()

{

;

}

Complex* operator=(const Complex& a)

{

this->_real = a._real;

this->_image = a._image;

return this;

}

private:

double _real;

double _image;

};

int main()

{

Complex first(1.0, 2.0);

first.display();

Complex second(first);

second.display();

Complex three;

//three = second = first;

//second.display();

//three = first + second;

first.operator++(1);

first.display();

system("pause");

return 0;

}


你可能感兴趣的:(复数类)