this指针:
C++编译器给每个“非静态的成员函数“增加了一个隐藏的指针参数,让该指针指向当前对象(函数运行时调用该函数的对象),在函数体中所有成员变t量的操作,都是通过该指针去访问。只不过所有的操作对用户是透明的,即用户不需要来传递,编译器自动完成。
this指针是类“成员函数”第一个隐藏的参数,该指针时时刻刻指向调用函数的对象
this指针的特点:
- this指针的类型:类 类型* const
- 只能在“成员函数”的内部使用
- this指针本质上其实是一个成员函数的形参,是对象调用成员函数时,将对象地址作为实参传递给this形参。所以对象中不存储this指针。
- this指针是成员函数第一个隐含的指针形参,一般情况由编译器通过ecx寄存器自动传递,不需要用户传递
public:
void(char* name)
{
.....
}
};
实际上定义了两个参数->(*this和char**name)第一个参数是隐藏的this指针。
this在成员函数的开始前构造,在成员函数的结束后清除。
this只能在成员函数中使用。全局函数、静态函数都不能使用this.