gpt4 book ai didi

c++ - C++ 语法解释中的赋值运算符重载

转载 作者:行者123 更新时间:2023-12-02 02:55:46 25 4
gpt4 key购买 nike

我是 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);
}

最佳答案

引用意味着避免复制对象。结果,它将返回对同一对象的引用。此外,它还会提供左值作为结果。如果您考虑一下,这就是您希望在使用赋值运算符时发生的情况。

C++ 中的每个对象都可以通过 this 指针访问自己的地址。

这意味着您返回对象本身。

如果您的问题是为什么我们使用 *this 而不是 this,那么会发生这种情况,因为您需要首先取消引用指针,因为返回类型是引用(例如不是指针)。

关于c++ - C++ 语法解释中的赋值运算符重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50572079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com