cpp learning

在 C++ 中,每一个对象都能通过 this 指针来访问自己的地址。this 指针是所有成员函数的隐含参数。因此,在成员函数内部,它可以用来指向调用对象。

对象的成员函数可以访问本对象的数据(限定符只是限定于对象外的一些操作,对象内的一切属性对于成员函数来说都是透明的),那么成员函数如何知道哪个数据成员要被操作呢,原因在于每个对象都拥有一个指针:this 指针,通过 this 指针来访问自己的地址。注:this 指针并不是对象的一部分,this 指针所占的内存大小是不会反应在 sizeof 操作符上的。this 指针的类型取决于使用 this 指针的对象类型。

由于是成员函数才能使用 this 指针,因此友元函数、静态函数和全局函数都不能使用 this 指针。静态函数如同静态变量一样,他不属于具体的哪一个对象,而是属于整个类,而this指针却实实在在的对应一个对象,所以 this 指针当然不能被静态函数使用了。