cpp规定了this是右值,使用&是无法获取this指针的地址的,&需要左值才行。

this->:this是个指针,所以通过->可以访问对象的成员函数或是方法

*this:表示解引用,获取了当前这个对象!

this虽然用在类的内部,但是只有在对象被创建以后才会给 this 赋值,并且这个赋值的过程是编译器自动完成的,不需要用户干预,用户也不能显式地给 this 赋值

class Entity{
public:
    Entity(int x ,int y){
        //x = x;	//这个时候形参和成员变量同名了,这就很难受了
        this->x = x;
        this->y = y;
    }
public:
    void print(){
        //std::cout<<this->x<<" "<<this->y<<std::endl
        std::cout<<x<<" "<<y<<std::endl;
    }
private:
	int x;
    int y;
};

int main(){
    Entity e(1,2);
    e.func1();	//调用时,其实是这样的e.func1(&e),e被赋值给了this指针
}

return *this返回当前对象的本身或者克隆(返回类型为A,则是克隆,为&A,则是本身,也就是引用)

return this返回当前对象的地址(指向当前对象的指针)