目录
this指针的使用
this指针的特性
this指针的使用
#include<iostream>
using namespace std;
class Data //创建一个类相当于创建了一个类域,所有的成员都在这个域中
{
public:
void init(int year, int month, int day); //其实接收的是init(Data* this, 2022, 4, 12)
private:
int _year;
int _month;
int _day;
};
void Data::init(int year, int month, int day) //当我们函数声明和定义分离的时候,要指明这个函数在哪个类中,需要用到::作用域解析符
{
_year = year; //this->_year;
_month = month; //this->_month
_day = day; //this->_day
}
int main()
{
Data d;
d.init(2022, 4, 12); //其实传递过去的是init(&d,2022,4,12)
return 0;
}
当我们使用创建出来的对象的时候,编译器为了识别出我们使用的是哪个对象,就会将对象的地址传递过去,而函数也会有一个this指针来接收,不过这些都是隐含的,不需要我们自己去操作
this指针的特性
1. this指针的类型:类类型* const 2. 只能在“成员函数”的内部使用 3. this指针本质上其实是一个成员函数的形参,是对象调用成员函数时,将对象地址作为实参传递给this形参。所以对象中不存储this指针 4. this指针是成员函数第一个隐含的指针形参,一般情况由编译器通过ecx寄存器自动传递,不需要用户传递 5、this指针一般存在栈上面,但vs存储在ecx寄存器中
|