C++封装:this指针

电子说

1.2w人已加入

描述

this指针

特性

(1)this指针的类型:类类型* const。

(2)this指针并不是对象本身的一部分,不影响sizeof的结果。

(3)this是一个指针,它时时刻刻指向对象的实例。

(4)this指针的作用域在类成员函数的内部(不严谨)。

(5)this指针是类成员函数的第一个默认隐含参数,编译器自动维护传递。

(6)只有类的非静态成员函数中才可以使用this指针,其它成员函数都不可以。

_thiscall调用约定

(1)_thiscall只能够在类的成员函数上;

(2)参数从右向左压栈;

(3)如果参数个数确定,this指针通过ecx传给被调用者。如果参数不确定,this指针在所有参数被压栈后压入堆栈;

(4)参数个数不定的,调用者清理堆栈,否则函数自己清理堆栈。

this指针是否为空?

指针

当将空的this传给test函数时,test没有调用任何函数,因此执行此函数,没有报错;

当把空的this传给change函数时,通过this指针调用this-》name,由于this是空的,因此会出错。

总结:

(1)NULL对象指针可以调用成员函数;

(2)通过对象调用成员函数,对象的指针会被传入函数中,指针名称为this;

(3)NULL对象指针调用成员函数时,只要不访问此对象的成员变量,则程序正常运行;

(4)NULL对象指针调用成员函数时,一旦访问此对象的成员变量,则程序崩溃。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分