this Pointer
In object-oriented programming (OOP) languages like C++, the this pointer is a keyword that is used to refer to the current object within a member function. It is a special pointer that holds the memory address of the current object instance.
Example 1:
#include <iostream>
using namespace std;
class stud {
public:
void address() {
cout << this;
}
};
int main()
{
stud a, b, c;
cout << "The adress of a\t";
a.address();
cout << endl << "The adress of b\t";
b.address();
cout << endl << "The adress of c\t";
c.address();
cout << endl;
return 0;
}
In this C++ code, we have a class named stud, which contains a member function address(). This member function simply prints the memory address of the current object using the this pointer.
Function of this Pointer:
- In the address() function of the stud class, this refers to the current object for which the member function is being called.
- Inside the address() function, cout << this; prints the memory address of the current object.
- In the main() function, we create three objects a, b, and c of the class stud.
- We then call the address() function on each object, which prints the memory address of each object.
- The this pointer ensures that the correct memory address of the current object is printed when address() function is called for each object.
Example 2:
#include <iostream>
using namespace std;
class Student {
int id;
public:
void set_id(int id) {
this->id = id;
}
void print_id() {
cout << "ID is " << id << endl;
}
};
int main()
{
Student St;
St.set_id(10);
St.print_id();
return 0;
}
In this C++ code, we have a class named Student with a private member variable id representing the student’s ID. The class provides two member functions: set_id() and print_id().
Function of this Pointer:
- In the set_id() member function, the parameter id passed to the function has the same name as the member variable id of the class. To distinguish between them, the this pointer is used.
- Inside the set_id() function, this->id = id; assigns the value of the parameter id to the member variable id of the current object.
- The this pointer points to the current object for which the member function is called. It is used to access members of the object.
- In the main() function, an object St of the class Student is created. The set_id() function is called to set the ID of the St object to 10.
- Then, the print_id() function is called to print the ID of the St object.
The output of the code will be:
ID is 10