#include <iostream>
using namespace std;
class Fraction
{
private:
int value, x, y, z;
public:
Fraction() {};
Fraction(int a) : value(a) {};
friend const Fraction& operator+(const Fraction& a);
friend const Fraction operator-(const Fraction& a);
friend const Fraction& operator*(const Fraction& a);
friend const Fraction& operator/(const Fraction& a, const Fraction& b);
friend bool operator==(const Fraction& a, const Fraction& b);
Fraction& operator=(const Fraction& a)
{
if (this == &a)
{
return *this;
}
value = a.value;
return *this;
}
friend bool operator!=(const Fraction &a, const Fraction &b);
friend bool operator<(Fraction const & a, Fraction const & b);
friend bool operator>(Fraction const & a, Fraction const & b);
friend ostream& operator << (ostream &a, const Fraction &b);
friend istream& operator >> (istream &a, Fraction &b);
};
const Fraction& operator+(const Fraction& a)
{
return a.value;
}
const Fraction operator-(const Fraction& a)
{
return Fraction(-a.value);
}
const Fraction& operator*(const Fraction& a)
{
return a.value;
}
const Fraction& operator/(const Fraction& a, const Fraction& b)
{
return Fraction(-a.value);
}
bool operator==(const Fraction& a, const Fraction& b)
{
return a.value == b.value;
}
bool operator!=(const Fraction &a, const Fraction &b)
{
return !(a == b);
}
bool operator <(Fraction const & a, Fraction const & b)
{
return a < b;
}
bool operator >(Fraction const & a, Fraction const & b)
{
return a > b;
}
ostream& operator << (ostream &a, const Fraction &b)
{
a << '(' << b.x << ", " << b.y << ", " << b.z << ')';
return a;
}
istream& operator >> (istream &a, Fraction &b)
{
cout << "Введите Fraction.\nX:";
cin >> b.x;
cout << "\nY:";
cin >> b.y;
cout << "\nZ:";
cin >> b.z;
cout << endl;
return a;
}
int main() {
auto a = Fraction(5);
std::cout << a << Fraction();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCmNsYXNzIEZyYWN0aW9uCnsKcHJpdmF0ZToKICAgIGludCB2YWx1ZSwgeCwgeSwgejsKcHVibGljOgogICAgRnJhY3Rpb24oKSB7fTsKICAgIEZyYWN0aW9uKGludCBhKSA6IHZhbHVlKGEpIHt9OwogCiAgICBmcmllbmQgY29uc3QgRnJhY3Rpb24mIG9wZXJhdG9yKyhjb25zdCBGcmFjdGlvbiYgYSk7CiAKICAgIGZyaWVuZCBjb25zdCBGcmFjdGlvbiBvcGVyYXRvci0oY29uc3QgRnJhY3Rpb24mIGEpOwogCiAgICBmcmllbmQgY29uc3QgRnJhY3Rpb24mIG9wZXJhdG9yKihjb25zdCBGcmFjdGlvbiYgYSk7CiAKICAgIGZyaWVuZCBjb25zdCBGcmFjdGlvbiYgb3BlcmF0b3IvKGNvbnN0IEZyYWN0aW9uJiBhLCBjb25zdCBGcmFjdGlvbiYgYik7CiAKICAgIGZyaWVuZCBib29sIG9wZXJhdG9yPT0oY29uc3QgRnJhY3Rpb24mIGEsIGNvbnN0IEZyYWN0aW9uJiBiKTsKIAogICAgRnJhY3Rpb24mIG9wZXJhdG9yPShjb25zdCBGcmFjdGlvbiYgYSkKICAgIHsKIAogICAgICAgIGlmICh0aGlzID09ICZhKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgICAgIH0KICAgICAgICB2YWx1ZSA9IGEudmFsdWU7CiAgICAgICAgcmV0dXJuICp0aGlzOwogICAgfQogCiAgICBmcmllbmQgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEZyYWN0aW9uICZhLCBjb25zdCBGcmFjdGlvbiAmYik7CiAKICAgIGZyaWVuZCBib29sIG9wZXJhdG9yPChGcmFjdGlvbiBjb25zdCAmIGEsIEZyYWN0aW9uIGNvbnN0ICYgYik7CiAKICAgIGZyaWVuZCBib29sIG9wZXJhdG9yPihGcmFjdGlvbiBjb25zdCAmIGEsIEZyYWN0aW9uIGNvbnN0ICYgYik7CiAKICAgIGZyaWVuZCBvc3RyZWFtJiBvcGVyYXRvciA8PCAob3N0cmVhbSAmYSwgY29uc3QgRnJhY3Rpb24gJmIpOwogCiAgICBmcmllbmQgaXN0cmVhbSYgb3BlcmF0b3IgPj4gKGlzdHJlYW0gJmEsIEZyYWN0aW9uICZiKTsKIAogCn07CiAKIAogCiAKY29uc3QgRnJhY3Rpb24mIG9wZXJhdG9yKyhjb25zdCBGcmFjdGlvbiYgYSkKewogICAgcmV0dXJuIGEudmFsdWU7Cn0KIApjb25zdCBGcmFjdGlvbiBvcGVyYXRvci0oY29uc3QgRnJhY3Rpb24mIGEpCnsKICAgIHJldHVybiBGcmFjdGlvbigtYS52YWx1ZSk7Cn0KIApjb25zdCBGcmFjdGlvbiYgb3BlcmF0b3IqKGNvbnN0IEZyYWN0aW9uJiBhKSAgCnsKICAgIHJldHVybiBhLnZhbHVlOwp9CiAKY29uc3QgRnJhY3Rpb24mIG9wZXJhdG9yLyhjb25zdCBGcmFjdGlvbiYgYSwgY29uc3QgRnJhY3Rpb24mIGIpCnsKICAgIHJldHVybiBGcmFjdGlvbigtYS52YWx1ZSk7Cn0KIApib29sIG9wZXJhdG9yPT0oY29uc3QgRnJhY3Rpb24mIGEsIGNvbnN0IEZyYWN0aW9uJiBiKQp7CiAgICByZXR1cm4gYS52YWx1ZSA9PSBiLnZhbHVlOwp9CiAKYm9vbCBvcGVyYXRvciE9KGNvbnN0IEZyYWN0aW9uICZhLCBjb25zdCBGcmFjdGlvbiAmYikKewogICAgcmV0dXJuICEoYSA9PSBiKTsKfQogCmJvb2wgb3BlcmF0b3IgPChGcmFjdGlvbiBjb25zdCAmIGEsIEZyYWN0aW9uIGNvbnN0ICYgYikKewogICAgcmV0dXJuIGEgPCBiOwp9CiAKYm9vbCBvcGVyYXRvciA+KEZyYWN0aW9uIGNvbnN0ICYgYSwgRnJhY3Rpb24gY29uc3QgJiBiKQp7CiAgICByZXR1cm4gYSA+IGI7Cn0KIApvc3RyZWFtJiBvcGVyYXRvciA8PCAob3N0cmVhbSAmYSwgY29uc3QgRnJhY3Rpb24gJmIpCnsKICAgIGEgPDwgJygnIDw8IGIueCA8PCAiLCAiIDw8IGIueSA8PCAiLCAiIDw8IGIueiA8PCAnKSc7CiAgICByZXR1cm4gYTsKfQogCmlzdHJlYW0mIG9wZXJhdG9yID4+IChpc3RyZWFtICZhLCBGcmFjdGlvbiAmYikKewogICAgY291dCA8PCAi0JLQstC10LTQuNGC0LUgRnJhY3Rpb24uXG5YOiI7CiAgICBjaW4gPj4gYi54OwogICAgY291dCA8PCAiXG5ZOiI7CiAgICBjaW4gPj4gYi55OwogICAgY291dCA8PCAiXG5aOiI7CiAgICBjaW4gPj4gYi56OwogICAgY291dCA8PCBlbmRsOwogICAgcmV0dXJuIGE7Cn0KIAppbnQgbWFpbigpIHsKCWF1dG8gYSA9IEZyYWN0aW9uKDUpOwoJc3RkOjpjb3V0IDw8IGEgPDwgRnJhY3Rpb24oKTsKfQ==