Mega Code Archive

 
Categories / C++ Tutorial / Class
 

Returning the dereferenced this pointer

#include <iostream>    class MyType  {  public:      MyType();      ~MyType(){}      int getValue()const {          return myValue;       }      void setValue(int x) {         myValue = x;       }      const MyType& operator++ ();      // prefix      const MyType operator++ (int);    // postfix    private:      int myValue;  };    MyType::MyType(): myValue(0) {}    const MyType& MyType::operator++()  {      ++myValue;      return *this;  }    const MyType MyType::operator++(int)  {      MyType temp(*this);      ++myValue;      return temp;  }    int main()  {      MyType i;      std::cout << "The value of i is " << i.getValue() << std::endl;      i++;      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;      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 The value of a: 3 and i: 4