#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; 
}