运算符重载
#include <iostream>
using namespace std;
class craco {
private:
int num1;
int num2;
public:
craco() { }
craco(int a, int b)
: num1(a)
, num2(b)
{
}
craco operator!()
{
this->num1 = !num1;
this->num2 = !num2;
return *this;
}
craco operator~()
{
this->num1 = ~num1;
this->num2 = ~num2;
return *this;
}
craco operator++()
{
this->num1++;
this->num2++;
return *this;
}
craco operator--()
{
this->num1--;
this->num2--;
return *this;
}
craco operator-()
{
this->num1 = 0 - this->num1;
this->num2 = 0 - this->num2;
return *this;
}
craco operator*(craco cra)
{
craco temp;
temp.num1 = this->num1 * cra.num1;
temp.num2 = this->num2 * cra.num2;
return temp;
}
craco operator/(craco cra)
{
craco temp;
temp.num1 = this->num1 / cra.num1;
temp.num2 = this->num2 / cra.num2;
return temp;
}
craco operator%(craco cra)
{
craco temp;
temp.num1 = this->num1 % cra.num1;
temp.num2 = this->num2 % cra.num2;
return temp;
}
craco operator+(craco cra)
{
craco temp;
temp.num1 = this->num1 + cra.num1;
temp.num2 = this->num2 + cra.num2;
return temp;
}
craco operator-(craco cra)
{
craco temp;
temp.num1 = this->num1 - cra.num1;
temp.num2 = this->num2 - cra.num2;
return temp;
}
bool operator<(craco cra)
{
if (this->num1 == cra.num1) {
return this->num2 < cra.num2;
} else {
return this->num1 < cra.num1;
}
}
bool operator>(craco cra)
{
if (this->num1 == cra.num1) {
return this->num2 > cra.num2;
} else {
return this->num1 > cra.num1;
}
}
bool operator<=(craco cra)
{
if (this->num1 == cra.num1) {
return this->num2 <= cra.num2;
} else {
return this->num1 < cra.num1;
}
}
bool operator>=(craco cra)
{
if (this->num1 == cra.num1) {
return this->num2 >= cra.num2;
} else {
return this->num1 > cra.num1;
}
}
bool operator==(craco cra)
{
if (this->num1 == cra.num1) {
return this->num2 == cra.num2;
} else {
return false;
}
}
bool operator!=(craco cra)
{
if (this->num1 == cra.num1) {
return this->num2 != cra.num2;
} else {
return true;
}
}
bool operator&&(craco cra)
{
if (this->num1 != 0 && this->num2 != 0 && cra.num1 != 0 && cra.num2 != 0) {
return true;
} else {
return false;
}
}
bool operator||(craco cra)
{
if (this->num1 == 0 && this->num2 == 0 && cra.num1 == 0 && cra.num2 == 0) {
return false;
} else {
return true;
}
}
craco& operator=(craco& cra)
{
if (this != &cra) {
this->num1 = cra.num1;
this->num2 = cra.num2;
}
return *this;
}
craco operator+=(craco& cra)
{
this->num1 += cra.num1;
this->num2 += cra.num2;
return *this;
}
craco operator-=(craco& cra)
{
this->num1 -= cra.num1;
this->num2 -= cra.num2;
return *this;
}
craco operator*=(craco& cra)
{
this->num1 *= cra.num1;
this->num2 *= cra.num2;
return *this;
}
craco operator%=(craco& cra)
{
this->num1 %= cra.num1;
this->num2 %= cra.num2;
return *this;
}
craco operator/=(craco& cra)
{
this->num1 /= cra.num1;
this->num2 /= cra.num2;
return *this;
}
};
int main()
{
return 0;
}