【发布时间】:2020-04-04 02:46:37
【问题描述】:
我知道这很愚蠢,而且标题可能不是答案..
我一直认为this 是指向当前对象的指针,它在来自对象的每个方法调用中提供(这不是静态方法)
但看看我的代码实际返回的内容,例如:
Test& Test::func ()
{
// Some processing
return *this;
}
this 的取消引用被返回...并且返回类型是对对象的引用...。那么this 是什么?是不是有一些我不太理解的东西?
【问题讨论】:
-
this在 C++ 中是指向对象实例本身的指针。取消引用它会产生对象。通过引用返回对象形成对对象的引用(别名),这就是返回的内容。 -
旁注:你不能做一个指向引用的指针。引用只是现有对象的另一个名称,因此没有什么可指出的。取一个引用的地址,你就得到了被引用对象的地址。
-
后来在 C++ 中添加了引用。否则我们可能会有
self引用,即Test&。但到添加参考资料时,已发货,this已被数十甚至数百名用户牢牢占据和依赖。
标签: c++ this-pointer