C++ Operator Overload ++ operator in both prefix and postfix
#include <iostream> using namespace std; class Counter//from w ww . j a v a2 s.c om { private: unsigned int count; //count public: Counter() : count(0) //constructor no args { } Counter(int c) : count(c) //constructor, one arg { } unsigned int get_count() const //return count { return count; } Counter operator ++ () //increment count (prefix) { //increment count, then return return Counter(++count); //an unnamed temporary object } Counter operator ++ (int) //increment count (postfix) { return Counter(count++); } }; int main() { Counter c1, c2; //c1=0, c2=0 cout << "\nc1=" << c1.get_count(); cout << "\nc2=" << c2.get_count(); ++c1; //c1=1 c2 = ++c1; //c1=2, c2=2 (prefix) cout << "\nc1=" << c1.get_count(); cout << "\nc2=" << c2.get_count(); c2 = c1++; //c1=3, c2=2 (postfix) cout << "\nc1=" << c1.get_count(); cout << "\nc2=" << c2.get_count() << endl; return 0; }