我想问一个让我困惑的简单问题。 例如,如果我在参数中写入没有参考&amp ;.但在第二种情况下,我使用了&对于矩形类型&amp ;,我很困惑为什么我们使用这个&什么时候我们可以没有这个&amp ;.这是必要的,为什么我们使用它。我的问题不是复制构造函数。
rectangleType rectangleType::operator+
(const rectangleType rectangle)
案例2:
rectangleType rectangleType::operator+
(const rectangleType& rectangle)
答案 0 :(得分:2)
按值传递rectangleType
(或任何其他类型)之类的对象时,您将复制该对象。这意味着:
因此,无论何时通过引用:
当不需要该函数能够修改原始对象时,通过 const 引用。
对于用户定义的类型,这基本上归结为“尽可能通过引用传递。”
答案 1 :(得分:0)
如果答案是关于它的,你怎么能说你的问题不是关于复制的?
总而言之:你得到的好处没有缺点。
答案 2 :(得分:0)
在第一种方法中,它将接收rectangleType
的(完整)实例,该实例将使用复制构造函数创建,只是作为参数传递。
在第二种方法中,它将接收对已存在实例的引用;不会复制。