Difference between object pointer and this pointer
| Object Pointer | this pointer |
|
The pointer pointing to object are called as object pointer Student *p=new student(); |
When a member function is called , it automatically passes an implicit argument that is a pointer to the invoking object. The automatic pointer used to invoke objects is called as “this” pointer |
|
It is useful in creating object at run time Cout<<”enter total students”; |
It is useful when we compare two or more objects inside a member function and return the invoking object as a result. |
| we can also use an object pointer to access the public member of an object. | We can use a “this” pointer whenever a member function must utilize a pointer to the object that invoked it. |
Example:1
Write a C++ program to declare a class named person with attributes as name and age. Take input for details of two person check and print the details of the elder person.
Sol:
#include<iostream>
#include<conio.h>
#include<string.h>
using namespace std;
class person
{
private:
char name[20];
int age;
public:
person(); //default cons
person(char *n,int a); //para cons
void read();
void show();
person elder(person p);
};
//defa cons
person::person()
{
name[0]='\0';
age=0;
}
//para cons
person::person(char *n,int a)
{
strcpy(name,n);
age=a;
}
void person::read()
{
cout<<"Enter name and age ";
cin>>name>>age;
}
void person::show()
{
cout<<"name "<<name<<" age "<<age<<endl;
}
person person::elder(person p)
{
if(age>p.age) //if(this->age>p.age)
return(*this);
else
return(p);
}
/*
*this represents the object using which the member function
is called.
*/
int main()
{
//person p1("mohit",26);
//person p2("sumit",18);
person p1,p2;
p1.read(); p2.read();
person p3;
p3=p1.elder(p2);
p3.show();
getch();
return(0);
}
Output:
Enter name and age mohit
15
Enter name and age kapil
14
name mohit age 15




