#Previous question #Index of C++ Questions #Next question

The member functions of every object have access to a pointer named this, which points to the object itself. When we call a member function, it comes into existence with the values of this set to the address of the object for which it was called. This pointer is the default hidden and implicit argument of any non-static member function.

Using a ďthisĒ pointer any member function can find out the address of the object of which it is a member. It can also be used to access the data in the object it points to.

The following program shows the working of the this pointer.

class example
{
  private:
  int i;
  
  public:
  void setdata(int i)
  {
    this->i = i;
    cout << "my objectís address is: " << this << endl;
  }
  void showdata()
  {
    cout << "my objectís address is: " << this << endl;
    cout << this->i;
  }
};
int main (int argc, char *argv[])
{
  example e1;
  e1.setdata(10);
  e1.showdata();
}

Output will be:
my objectís address is 0x8fabfff410
my objectís address is 0x8fabfff410
10

We can confirm from output that each time the address of the same object e1 is printed. Since the this pointer contains the address of the object, using it we can reach the data member of the example class.

You have viewed 1 page out of 62. Your C++ learning is 0.00% complete. Login to check your learning progress.

 Vote 0

Similar topics related to this section

object-oriented, C vs C++, C++ vs Java, encapsulation, constructor, overloaded constructor, destructor, destructor overloaded, copy constructor, copy constructor, deep copy, deep copy vs shallow copy, singleton, default access modifier, default access modifier, default access modifier, abstraction, THIS pointer, static function, THIS pointer, a static function, scope resolution operator, inline function, private vs protected, const function, polymorphism, operator overloading, function overloading, overriding, prefix vs postfix, friend class, friend function, sizeof class with virtual, vfptr and vftable, vfptr and vftable using C, early binding and late binding, inheritance, virtual function call from a constructor/destructor, virtual destructor, virtual base class, virtual base class, exception, stack unwinding, exception handling, try-catch block, namespace, mutable variable and const function, mutable keyword, explicit, access a member function, object slicing, ctor sequence of constructor, dtor sequence of destructor, virtual destructor, print the type, dynamic casting, static casting, dynamic and static casting, const casting, reinterpret casting, static and reinterpret casting, template class, template vs macro,

#Object-Oriented Programming in C++ (4th Edition)
#Programming: Principles and Practice Using C++ (2nd Edition)
#The C++ Programming Language, 4th Edition
#Professional C++ Paperback by Nicholas A.Solter, Scott J.Kleper
#Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14