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

Inheritance in c++

Hello friends, in this post today, we learn about Inheritance in c++ concept and types of inheritance in c++ . Which  is very important. so lets start... Inheritance  Inheritance   Class can acquire the properties and methods of another class. Inheritance is the process of deriving a new class from an already existing class. In other words" Inherit all the properties and methods of class into another class, is called Inheritance." Inheritance  provides the idea of reusability i.e., code once written can be used again and again in number  of new classes. The new class is called derived class and old class is called base class. The new class can use all or some of the features of the already existing  class and the programmer can define his own members to the new class. Types of Inheritance In c++, there are 5 types of inheritance. Types of Inheritance Syntax of Inheritance:- class derived_classname : access_spacifier base_classname Where class is keyword used to create a clas

Constructor in c++

Hello friends, in this post today, we learn about  what is constructor in c++ and types of constructor . so lets start... Constructor in c++ Constructor:-   A constructor is a “special” member function which initializes the objects of class.  Constructor is used to solve problem of initialization. Properties of constructor:- Constructors are used to construct the object of the class. Constructor name must be same as class name. Constructor is invoked automatically when objects of the class are created. The constructors are always declared in the public section. If declared in the private section then objects are can only be created inside the member functions but serve no purpose. It must be an instance member function , that is, it can never be static. Constructors  do not have any return type not even void so they cannot return any value. Constructor can also be overloaded. Constructors cannot be inherited, but they can be called from the constructors of derived  class . Constructor

What is scope resolution operator in c++

Hello friends, in this post today, we will learn about What is scope resolution operator in c++ and how to use in our program. so let's start.... Scope resolution operator  Scope resolution operator :- Scope resolution operator which is also known as ( membership lable ), represnted as (::) . The scope resolution operator is employed to resolve or extend the scope of variable or functions. C++ is block structured language. We know that the same variable or function name can be used to have different meaning in different block. The scope resolution operator will refer value of worldwide variable or function from anywhere (also from inner block). Without scope resolution operator all variable will refer local value. Example for variabe: #include   <iostream>   using   namespace   std ; int  m= 10 ; int   main () {       int  m= 20 ;      {       int  k=m;        int  m= 30 ;     cout<< "we are in inner block \n " ;      cout<< "k=" <<k<