什么是this指针
C++编译器给类中的每个成员函数都设置了一个隐藏的参数this指针,该指针指向调用该成员函数的对象,在成员函数中访问的每个成员变量,实际上访问的是this指向的对象。
在C语言中在对s1进行初始化时需要将s1的地址传递,这样编译器才知道是给s1进行初始化,而在C++中分明有两个对象,StudentInit函数中没有区分对象的参数,那为什么当s1调用Sutdent函数时,该函数知道是初始化对象s1而不是s2?
这就是this指针所解决的,C++编译器给类中的每个成员函数都设置了一个隐藏的参数this指针,所以StudentInit函数看起来只有三个参数,其实有四个参数
静态成员函数没有this指针,只有非静态成员函数才有,且为隐藏指针
非静态成员函数的第一个参数就是隐藏的this指针
this指针保证每个对象拥有自己的数据成员,但共享处理这些数据的代码
this指针的特性
this指针只能在成员函数中使用
this指针的类型:T* const
this指针是成员函数中一个隐藏参数---是编译器在编译代码节点自动增加的,该参数由编译器自动传递
传递方式:在vs中,编译器通过ecx寄存器将对象的地址传给this指针