使用&符号在C++


Use of the '&' symbol in C++

本问题已经有最佳答案,请猛点这里访问。

我知道这可能是一个愚蠢的问题,但我找不到答案…C++函数中的"and"符号的目的是什么?如

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

我在关注一个有点让我头晕目眩的YouTube系列,但我做得很好,因为所有的代码都在那里。然而,"和"符号不断出现,我真的想知道它是什么…这和上课有关系吗?

这正是我要看的:https://www.youtube.com/watch?V=-PyvelkK0U一个叫"Thechernoproject"的频道的家伙正在制作一个简单的游戏引擎。另外,这是VisualStudio 2013 C++,如果它改变了什么。


根据上下文的不同,"&;"可以表示几种不同的内容。

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

需要帮助理解特定函数中的引用操作符(C++)

引用运算符对C++是特定的。也可以用作"操作符的地址",在C和C++中使用:

C++中指针变量与引用变量的区别是什么?

最后,"&;"也可以是位"和"运算符:

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


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


它的意思是通过引用,传递的对象可以直接被修改。例如,当您编写public void TestMethod(obj value)时,对值所做的任何更改都不会影响原始值(即复制),但是当您通过引用传递对值所做的任何更改时,会更改原始值。