this 是一个指向的指针,代表着被指向成员的地址,如果一个函数返回的值是一个指针或引用,那return ()的也是指针或引用,但是*this的意思是解引用,是值的意思,那return *this的意思难道不是说返回成员的值吗,为什么会和解引用在一起啊
this是一个常量,他被称为隐对象指针。用*this才能表示他的地址,如果仅仅是this,他是没办法被赋值的,你可以去看一下我主页的类,里面就有this的解释
每一个非静态的类成员函数都有一个隐藏的参数 const T* this,这个是编译器自动产生的
类似
class T{
publc:
void test();//这个函数编译后是 void test(const T* this);
}
Ta;
a.test(); //就是test(&a);