类和对象
this指针
this指针的引出
这时就应该会有人说他们访问的是同一个函数,那么是如何访问他们各自的年月日呢
this指针的特性
- this指针的类型:类类型* const
- 只能在“成员函数”的内部使用
- this指针本质上其实是一个成员函数的形参,是对象调用成员函数时,将对象地址作为实参传递给this形参。所以对象中不存储this指针。
- this指针是成员函数第一个隐含的指针形参,一般情况由编译器通过ecx寄存器自动传递,不需要用户传递
【面试题】
this指针存在哪里?
this指针是存在栈里面的,因为this是形参,参数,局部变量是在栈里面的。但是不同的编译器有的会有点不同,甚至相同的编译器不同的版本都会有点不同,比如vs13是使用ecx寄存器存储的,vs19是使用rcx寄存器存储的
this指针可以为空吗?
说这个问题前先看一道恶心人的题
所以this不可以为空指针,空指针编译是不会报错的,因为他不是语法错误,编译器检查不出来