Skip to main content

'this' pointer in c++

Hello friends, in this post today, we learn about 'this' pointer in c++ and what is the use of  'this' pointerso lets start...

this pointer in c++, this pointer
this pointer in c++





'this' pointer:-

The this pointer is a special pointer which is a built-in pointer. and 'this' is a keyword.


It stores the address of current object in context. That is the current object which can be referred using this pointer anywhere in the class.


Important Points About this Pointer:-

The this pointer can be used only inside the class i.e., only inside the member function of the class and cannot be used outside and  static member of the class.


The object’s address is available from within the member function as the this pointer.


It is legal, through unnecessary, to use this pointer when referring to members of the class.


The expression (*this) is commonly used to return the current object from a member function.


this is a local object pointer in every instance member function containing address of the caller object.


‘this’ pointer represent an object that invoke or call a member function. It will point to the object for which member function is called.


The this pointer is a constant pointer.


When a non static member’s function is called for an object, the address of the object is passed as a hidden argument to the function.


It is automatically passed to a member function when it is called.


It is also called as implicit argument to all member function.



Example: 

//Demo of this pointer
#include <iostream>
using namespace std;

class this_Demo   
{
  public:
  this_Demo()
  {
    cout<<"Default constructor is called"<<endl;
    cout<<"Address of current object===="<<this<<endl;
  }
};

int main()
{

this_Demo d1;
cout<<"Address of current object d1 in main===="<<&d1<<endl;
this_Demo d2;
cout<<"Address of current object d2 in main===="<<&d2<<endl;
return 0;

}

Output:

Default constructor is called
Address of current object====0x61ff1f
Address of current object d1 in main====0x61ff1f
Default constructor is called
Address of current object====0x61ff1e
Address of current object d2 in main====0x61ff1e


The most important advantage of ‘this’ pointer is, If there is same name of argument and data member than you can differentiate it.

By using ‘this’ pointer we can access the data member and without ‘this’ we can access the argument in same function.



I hope that whatever information I have given in this post today, you have liked it and you have understood it.so keep learning and wait for the next post that will help you to increase your knowledge with the something new information.

Thank you so much for reading. And take care about yourself and your family.



Comments

Popular posts from this blog

What is new and delete operator in c++

Hello friends, in this post today, we learn about What is new and delete operator in c++ . so lets start... new and delete operator  Memory Management Operators of C++:- The technique through which a program can obtain space in the RAM during the execution  of the program and not during compilation is called dynamic memory allocation. In this method space for the variables (array, strings, structure etc) is allocated from a free memory region which is known as heap.  For dynami c memory management, C++ provides two unary operator 'new' and 'delete'. Dynamic memory allocation is the allocation of memory at run time i.e., when program  executes then required memory is asked from the user and memory is allocated with the help of operator new. Syntax of new : data_type *ptr = new data_type; Here ptr is a variable of data_type. Memory is allocated by finding the size of data_type  automatically by the compiler and address of the allocated memory is returned which is ...

Destructor in c++

Hello friends, in this post today, we learn about what is Destructor in c++ and why we use Destructor in c++. so lets start... Destructor in c++ Destructor:- Destructor is a special and  instance member function of a class. Destructor is a member function whose name must be same as class name but is preceded by a tilde sign (~). The purpose of destructor is to destroy the object when it is no longer needed or goes out of scope. It should be defined to release resources allocated to an object. Features of Destructor:- Destructor should be declared in the public section. Destructor can never be static. Once a destructor is called for a object, the object will no longer be available for the  future reference. Destructor never  takes any argument nor it returns any value nor it has return type (no overloading is possible). Destructor is invoked automatically by the complier when object goes out scope  of the program. There is no explicit or implicit category for a dest...