#include class int_clone { int i; public: int_clone() { i=0; } int_clone& operator++() { ++i; return *this; } const int_clone operator++(int) { int_clone old_val = *this; ++(*this); return old_val; } void print() { std::cout << i << std::endl; } }; int main ( void ) { int_clone i; i.print(); i++; i.print(); i++++; i.print(); return 0; }