Nu cred ca ai cum sa definesti operatorul ++ cum vrei tu.
Nu poti sa supraincarci operatorul ++ pentru ca tu faci operatia pe un pointer, iar din cate stiu pointerii nu sunt tipuri de date.
Daca faci cum a spus Andrei dezavantajul este ca nu vei mai putea folosi operatorul ++ decat cu pointeri, si nu il vei mai putea folosi pentru intregi, spre exemplu.
#define ++it it = it -> x
int a = 0;
++a; // da eroare, se transforma in a = a -> x si a nu e pointer
Pentru a permite o astfel de scrieri, in structurile de date din STL se folosesc iteratorii, dar acestia sunt niste clase mai speciale definite in interiorul clasei parinte.