C++40个入门知识点_18_ this指针笔记
个人总结:
非静态成员函数实际上的形参个数比程序员写的多一个。多出来的参数就是所谓的“this指针”。这个“this指针”指向了成员函数作用的对象,在成员函数执行的过程中,正是通过“this指针”才能找到对象所在的地址,因而也就能找到对象的所有非静态成员变量的地址。
静态成员函数并不作用于某个对象,所以在其内部不能使用 this 指针;否则,这个 this 指针该指向哪个对象呢
因为是中间跟着玄马学习的,所以有些地方没听懂,但是目的是为了了解this指针的使用,根据总结,关于类和this指针的性质有以下几点
类的大小与结构体大小一样(结构体的对齐方式)
同一个类的成员函数地址是一样的,表示同一个类的对象的成员函数是共用的
(1)类对象的数据是独立的
(2)类对象的成员函数是共用的
this指针:
成员函数调用时会偷偷的传递this指针,通过寄存器ecx传递,这种传递方式称为thiscall
(1)this指针中存放的是指向对象的指针,对象的首地址;
(2)静态成员函数先于对象存在,是所有对象所共有的,没有this
摘自B站视频:this指针
this 指针的作用:
非静态成员函数实际上的形参个数比程序员写的多一个。多出来的参数就是所谓的“this指针”。这个“this指针”指向了成员函数作用的对象,在成员函数执行的过程中,正是通过“this指针”才能找到对象所在的地址,因而也就能找到对象的所有非静态成员变量的地址。摘自:this指针理解
摘抄的小程序段:
//类域成员函数的地址即为类域成员函数指针
//定义类的成员函数指针(__thiscall系统内部默认的关键字意为类的成员函数的调用约定)
//__thiscall通过ecx寄存器传参
typeid int(CClock::*PFN_GETHOUR)(void)
//&CClock::GetHour意类域成员函数地址,即为类域加成员函数取地址
PFN_GETHOUR lp=&CClock::GetHour
B站学习视频:视频地址
上一篇: session是什么意思
下一篇: 01springboot快速入门