?别跟我说, return *this返回当前对象, return this返回当前对象的地址(指向当前对象的指针)。
? ? ? 正确答案为:return *this返回的是当前对象的克隆(当然,
这里仅考虑返回类型为A,
没有考虑返回类型为A&?)。return this返回当前对象的地址(指向当前对象的指针), 下面我们来看看程序吧:
[cpp]?view plaincopy

#include?<iostream>??
using?namespace?std;??
??
?
class?A??
{??
public:??
????int?x;??
????A*?get()??
????{??
????????return?this;??
????}??
};??
??
?
int?main()??
{??
????A?a;??
????a.x?=?4;??
??
?
????if(&a?==?a.get())??
????{??
????????cout?<<?"yes"?<<?endl;??
????}??
????else??
????{??
????????cout?<<?"no"?<<?endl;??
????}??
??
?
????return?0;??
}??
? ? ? 结果为:yes
?
? ? ? 再看:
[cpp]?view plaincopy

#include?<iostream>??
using?namespace?std;??
??
?
class?A??
{??
public:??
????int?x;??
????A?get()??
????{??
????????return?*this;?//返回当前对象的拷贝??
????}??
};??
??
?
int?main()??
{??
????A?a;??
????a.x?=?4;??
??
?
????if(a.x?==?a.get().x)??
????{??
????????cout?<<?a.x?<<?endl;??
????}??
????else??
????{??
????????cout?<<?"no"?<<?endl;??
????}??
??
?
????if(&a?==?&a.get())??
????{??
????????cout?<<?"yes"?<<?endl;??
????}??
????else??
????{??
????????cout?<<?"no"?<<?endl;??
????}??
??
?
????return?0;??
}??
? ? ?结果为:
4
no
return *this和return this的区别
原文:http://www.cnblogs.com/hdk1993/p/4355472.html