2026-06-29 21:18:48 +02:00

59 lines
888 B
C++

#include <iostream>
using namespace std;
struct A
{
int i;
A(int i) : i(i) {}
A(const A &a) : i(a.i) {}
A &operator=(int i)
{
this->i = i;
return *this;
}
A &operator-()
{
i = -i;
return *this;
}
A operator-() const
{
return A{-i};
}
A &operator-(const A &a)
{
i -= a.i;
return *this;
}
A operator-(const A &a) const
{
return A{i - a.i};
}
};
ostream &operator<<(ostream &os, const A &a)
{
os << a.i;
return os;
}
int main()
{
A a1{1};
const A a2{2};
A a3{-a1};
cout << a1 << " " << a3 << endl;
A a4{-a2};
cout << a2 << " " << a4 << endl;
a4 = 4;
a1 = -a4;
cout << a1 << " " << a4 << endl;
A a5 = a1-a4;
cout << a1 << " " << a4 << " " << a5 << endl;
const A a6{11};
cout << -(a2-a6);
}