引用和请求变量地址之间的区别

时间:2017-03-14 11:17:54

标签: c++ reference memory-address

在超载操作员练习的框架中,我找到了各种编码方法来引用" Type&变量"我变量寻址"类型和变量"

Duree.h下的原型如下(常量参考):

Duree& operator+=(Duree const& duree) 

我从这段代码中理解,参数和实例都需要引用(意味着它们(参数和实例)将在执行方法时直接修改 - 除非为参数集成了const)。

下游方法是Duree.cpp下的以下方法:

Duree& Duree::operator+=(const Duree &duree2)
{
XXX
}

据我所知,该实例可供参考,但此处的参数似乎是duree2的地址。代码似乎运作良好。这与:

具有相同的含义
Duree& Duree::operator+=(const Duree& duree2)
    {
    XXX
    }

或者在编辑"&"之间的汇编有根本区别吗?类型或变量?

由于

1 个答案:

答案 0 :(得分:2)

空间只是一个空格,只不过是一个标记分隔符。 (您甚至可以省略两个空格,T&t有效。)

附加到类型或变量是最初来自C:

的约定
int* x;

这使得类型看起来像int*

然而,这不起作用:

int* x, y;

在这种情况下,y被视为正常int

因此,有些人开始喜欢这种风格:

int *x, *y;

这声明了两个指示。

C ++引用中的语义基本相同,它们只是一种格式约定。