Can we use THIS Pointer in static function – Reason in C++?

(Last Updated On: April 4, 2017)

We cannot use THIS pointer in static function of a class in C++ program.

Reason: Whenever we call a class non-static member function using class object then THIS pointer is also passed to the function as a parameter internally and this is why a non-static member function of a class know that on which class object it is being called in case of multiple objects creation of the class.

But, static function of a class is not associated with class object. So, THIS pointer is not passed to a static function as an internal parameter. So, a static function does not understand THIS pointer inside its body.

If we compile below class, compiler with throw an error i.e. static functions do not have this pointer.

 

This is why static member function cannot have this pointer in C++ language.