#include <iostream>
struct A
{
int i;
A(int ii) { i = ii; }
A(const A& a) { i = a.i; i++; }
A& operator=(const A& a) { i = a.i; i--; }
};
int main(void)
{
A a(4);
std::cout << "a.i: " << a.i << '\n' ;
A b = a;
std::cout << "a.i: " << a.i << '\n' ;
std::cout << "b.i: " << b.i << '\n' ;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgogCnN0cnVjdCBBIAp7IAogICAgaW50IGk7IAogICAgQShpbnQgaWkpIHsgaSA9IGlpOyB9CiAgICBBKGNvbnN0IEEmIGEpIHsgaSA9IGEuaTsgaSsrOyB9IAogICAgQSYgb3BlcmF0b3I9KGNvbnN0IEEmIGEpIHsgaSA9IGEuaTsgaS0tOyB9IAogCn07IAogCmludCBtYWluKHZvaWQpIAp7IAogICAgQSBhKDQpOwogICAgc3RkOjpjb3V0IDw8ICJhLmk6ICIgPDwgYS5pIDw8ICdcbicgOwogICAgCiAgICBBIGIgPSBhOyAKICAgIHN0ZDo6Y291dCA8PCAiYS5pOiAiIDw8IGEuaSA8PCAnXG4nIDsKICAgIHN0ZDo6Y291dCA8PCAiYi5pOiAiIDw8IGIuaSA8PCAnXG4nIDsKICAgIHJldHVybiAwOyAKfQ==