c++开篇——自引用指针this

来源:互联网 发布:快速移动文件软件 编辑:程序博客网 时间:2024/06/16 06:27

c++中,有一个特别的指针this,也叫自引用指针。这个指针的巧妙之处在于它永远指向的是当前对象,由此便可以访问当前对象的所有成员。这样一来许多问题就得到了巧妙的解决。


注意,this 是一个指针,要用->来访问成员变量或成员函数

当调用到printpoint函数时,通过对象来访问成员,此处this指针接受对象传来的地址。

关于this指针,有以下几点需做说明:

1.  this指针的类型是类类型(*const)

2. 因为this指针不是对象本身的一部分,因此它不影响sizeof的结果。

 3. this指针的作用域是在类内部。全局函数,静态函数不能使用this指针。 

4. this指针时类成员函数第一个默认的隐含参数。类的非静态成员函数访问类的非静态成员时,编译器会将对象的地址作为一个隐含参数传递给函数。这个过程时编译器自发进行的。它作为非静态成员函数的隐含形参,对各成员的访问均通过this进行。

以下是关于-thiscall的调用说明;

1.  只能用在类的成员函数上

2. 函数从左向右压栈  (this从右到左)

3. 如果参数个数一定,this指针通过ecx传递给被调用者;若不确定参数个数,则被压栈后压入堆栈。

4. 函数参数个数确定,由调用者来清理堆栈,否则就由函数来清理。

0 0
原创粉丝点击