this在类内相当于一个获取类地址的一个形参,可以举一个例子
class a{
int c = 10;
public:
int pp(){
return this->10;
}
};
这里的this其实就相当于获取了每一个a类实例的地址。this所指的就是这个类的对象。同时我们不希望this发生变化,我们希望它永远指向
这个对象,所以他是一个常量指针,即指针所指不能变,在这个例子中我们可以写为a* const this,const离谁更近代表谁不能变。
尽管this一般是指向类的类型,但也有例外,例如一个const 修饰的函数, 如果this是一个a* const类型的,那么显然是不能进行初始化的,因为我们不能用一个const 地址来初始化非指向const 的指针,因为非指向const的指针是能够对指针所指的内容进行修改的,这显然不合理,所以对于const函数中的this,他的类型为const a* const