在超载操作员练习的框架中,我找到了各种编码方法来引用" 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
}
或者在编辑"&"之间的汇编有根本区别吗?类型或变量?
由于
答案 0 :(得分:2)
空间只是一个空格,只不过是一个标记分隔符。 (您甚至可以省略两个空格,T&t
有效。)
附加到类型或变量是最初来自C:
的约定int* x;
这使得类型看起来像int*
。
然而,这不起作用:
int* x, y;
在这种情况下,y
被视为正常int
。
因此,有些人开始喜欢这种风格:
int *x, *y;
这声明了两个指示。
C ++引用中的语义基本相同,它们只是一种格式约定。