我是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);
}
=
操作改变原始对象并返回对自身的引用。 - jspcal&
标记不被称为操作符。操作符&
获取一个对象的地址。但是在声明和其他指定类型的地方使用&
时,这是完全不同的含义。在类型名称后面写上&
另外定义了一种类型,它是刚刚命名的类型的引用。 - aschepler