Mega Code Archive

 
Categories / C++ Tutorial / Operator Overloading
 

Overloading the increment operator

#include <iostream>    class MyType  {  public:      MyType();      ~MyType(){}      int getValue()const {          return myValue;       }      void setValue(int x) {         myValue = x;       }      void Increment() {          ++myValue;       }      const MyType& operator++ ();    private:      int myValue;  };    MyType::MyType():myValue(0){}    const MyType& MyType::operator++()  {      ++myValue;      return *this;  }    int main()  {      MyType i;      std::cout << "The value of i is " << i.getValue() << std::endl;      i.Increment();      std::cout << "The value of i is " << i.getValue() << std::endl;      ++i;      std::cout << "The value of i is " << i.getValue() << std::endl;      MyType a = ++i;      std::cout << "The value of a: " << a.getValue();      std::cout << " and i: " << i.getValue() << std::endl;      return 0;  } The value of i is 0 The value of i is 1 The value of i is 2 The value of a: 3 and i: 3