电子说
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对象指针调用成员函数时,一旦访问此对象的成员变量,则程序崩溃。
全部0条评论
快来发表一下你的评论吧 !