在C++中使用"&"符号

Use of the '&' symbol in C++

本文关键字:符号 C++      更新时间:2023-10-16

我意识到这可能是一个愚蠢的问题,但我在任何地方都找不到答案......C++函数中"&"符号的用途是什么?如

vec2& operator+(vec2& left, const vec2& right)
{
    return left.add(right);
}

正在关注一个有点超出我头绪的 youtube 系列,但我做得很好,因为所有代码都在那里。然而,那个"和"符号不断弹出,我真的很想知道它是什么......它与类有关吗?

这正是我正在观看的内容:https://www.youtube.com/watch?v=-peYVLeK0WU来自一个名为"TheChernoProject"的频道的家伙制作了一个简单的游戏引擎。另外,这是Visual Studio 2013 C++,如果它改变了什么。

"

&"可以表示几种不同的东西,具体取决于上下文。

您上面给出的示例是C++"引用运算符":

需要帮助了解特定函数中的引用运算符 (C++)

引用运算符特定于C++。 "&"也可以用作"地址"运算符,用于 C 和C++:

在C++中,指针变量和引用变量有什么区别?

最后,"&"也可以是按位的"AND"运算符:

http://www.cprogramming.com/tutorial/bitwise_operators.html

它表示通过引用传递,传递的对象可以直接操作。例如,当您写入public void TestMethod(obj value)时,您对值所做的任何更改都不会影响原始值(即进行了复制),但是当您通过引用传递对值所做的任何更改时,原始值都会更改。

在问题中提供的代码中,&符号用于在operator+函数中通过引用传递参数。如果你删除它,你的代码仍然能够编译,并且会以相同的方式(在你的情况下)但参数将在你的operator+函数中按值传递(将被复制)。