We’ve seen that an object’s member functions can manipulate the object’s data. There can be many objects of a class, so how do member functions know which object’s data members to manipulate? Every object has access to its own address through a pointer called this (a C++ keyword). The this
pointer is not part of the object itself—i.e., the memory occupied by the this
pointer is not reflected in the result of a sizeof
operation on the object. Rather, the this
pointer is passed (by the compiler) as an implicit argument to each of the object’s non-static
member functions. Section 9.14 introduces static
class members and explains why the this
pointer is not implicitly passed to static
member functions.
52.15.148.187