this指针

this是一个指针,指向当前类对象本身。记住this本质是指针,指针的些操作也都支持,但与普通指针也有区别,在类里使用。具本写段this指针代码。

用this指针和&操作符得到地址输出:

从结果可以看出两个地址完全一样,现在应该明白this指向当前类对象本身。

this指针知识点:

this只能在成员函数中使用。全局函数,静态函数都不能使用this。实际上,成员函数默认第一个参数为T* const register this。

为什么this指针不能在静态函数中使用?

大家可以这样理解,静态函数如同静态变量一样,他不属于具体的哪一个对象,静态函数表示了整个类范围意义上的信息,而this指针却实实在在的对应一个对象,所以this指针当然不能被静态函数使用了,同理,全局函数也一样。

(1)this指针是什么时候创建的?

this在成员函数的开始执行前构造的,在成员的执行结束后清除。

(2)this指针如何传递给类中函数的?绑定?还是在函数参数的首参数就是this指针.那么this指针又是如何找到类实例后函数的?

this是通过函数参数的首参数来传递的。this指针是在调用之前生成的。类实例后的函数,没有这个说法。类在实例化时,只分配类中的变量空间(这个可以用sizeof关键字来测试就知道)。函数分配空间,类的多个对象共享类的函数,类中函数所占空间加载时将其放到了代码区!!

(3)this指针只有在成员函数中才有定义。因此,你获得一个对象后,也不能通过对象使用this指针。如要获取对象地址可以用取址&操作符。

this指针用途:

1.在类中当指针使用。例:像上面哪个代码中用this查看对象地址。

2.将数据成员和函数成员参数分开。具体看这篇:this指针用途

3.用this记录地址,用于设计数据结构等。

 

《this指针》上有2条评论

  1. zouzhongliang.com Hey Look what we get an eye to you! finepropose
    Are you in?

评论已关闭。