C++ Operator Overload Increment counter variable with ++ operator

Description

C++ Operator Overload Increment counter variable with ++ operator

#include <iostream>
using namespace std;
class Counter/*  ww w  . ja  va 2s.c  o m*/
{
   private:
       unsigned int count;              //count
   public:
       Counter() : count(0)             //constructor
       {  }
       unsigned int get_count()         //return count
       { return count; }
       void operator ++ ()             //increment (prefix)
       {
          ++count;
       }
};
int main()
{
   Counter c1, c2;                     //define and initialize
   cout << "\nc1=" << c1.get_count();  //display
   cout << "\nc2=" << c2.get_count();
   ++c1;             //increment c1
   ++c2;             //increment c2
   ++c2;             //increment c2
   cout << "\nc1=" << c1.get_count();  //display again
   cout << "\nc2=" << c2.get_count() << endl;
   return 0;
}
#include <iostream>
using namespace std;
class Counter/*w  w w. ja v a  2s  . c  om*/
{
   private:
       unsigned int count;      //count
   public:
       Counter() : count(0)     //constructor
       {  }
       unsigned int get_count() //return count
       { return count; }
       Counter operator ++ ()   //increment count
       {
          ++count;              //increment count
          Counter temp;         //make a temporary Counter
          temp.count = count;   //give it same value as this obj
          return temp;          //return the copy
       }
};
int main()
{
   Counter c1, c2;                       //c1=0, c2=0
   cout << "\nc1=" << c1.get_count();    //display
   cout << "\nc2=" << c2.get_count();
   ++c1;                                 //c1=1
   c2 = ++c1;                            //c1=2, c2=2
   cout << "\nc1=" << c1.get_count();    //display again
   cout << "\nc2=" << c2.get_count() << endl;
   return 0;
}



PreviousNext

Related