this version is wrong (do you understand the meaning of operator++(int i) ?)
I think you mean operator+(int i), which is not mandatory