#include using namespace std; class T { public: T(); T(const T&); T& operator++(); T operator++(int); int val(); private: int m_num; }; T::T():m_num(0){} T::T(const T& t):m_num(t.m_num){} T& T::operator++() { m_num++; return *this; } T T::operator++(int _) { T temp(*this); m_num++; return temp; } int T::val() { return m_num; } int main(int argc, char **argv) { T a, b; a++++++; ++++++b; cout << "A: " << a.val() << endl << "B: " << b.val() << endl; return 0; }