this是指向自身对象的指针,*this是自身对象。

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

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

下面代码写在CPerson类中

CPerson* getCperson()

{

cout<<"返回指向当前对象的指针: "<

return this;

}

CPerson getCopy()

{

cout<<"返回当前对象的克隆,当前对象地址为: "<

return *this;

}

CPerson & getSelf()

{

cout<<"返回当前对象本身: "<

return *this;

}

以下代码写在main函数中

cout<<"p4的地址"<<&p4<

cout<<"通过getCperson获得当前对象的地址"<

cout<<"p4克隆对象的地址"<<&p4.getCopy()<

cout<<"p4本身地址"<<&p4.getSelf()<

运行效果