我是C ++的新手。我需要一些帮助来理解此代码片段。
Queue & operator=(const Queue &rhs)
{
front = rhs.front;
nWaiting = rhs.nWaiting;
for (int i = front, j = 0; j < nWaiting; j++)
{
elements[i] = rhs.elements[i];
i = (i + 1) % 100;
}
return *this;
}
我无法理解为什么在代码中之前有一个'&'运算符,以及它如何与* this一起工作。
我了解运算符重载。例如。下面的代码用于加法运算重载。但是我不明白为什么赋值运算符(=)重载需要'&'。
V3 operator* (const double factor, const V3 &b)
{
return (b * factor);
}
该引用表示避免复制对象。结果,它将返回对相同object的引用。而且,它将提供左值。如果您考虑一下,这就是使用赋值运算符时要发生的事情。
C ++中的每个对象都可以通过this
指针访问其自己的地址。
这意味着您将返回对象本身。
如果您的问题是为什么我们使用*this
而不是this
,那么会发生这种情况,因为您需要首先取消引用指针,因为返回类型是引用(例如,不是指针)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句