在范围解析运算符的左侧使用&符号

use of ampersand on left hand side of scope resolution operator?

本文关键字:符号 范围 运算符      更新时间:2023-10-16

我正在尝试理解一段代码。我知道如何使用范围解析运算符。语法为

return-type class-name::operator+(argument list)

在我的代码中,我有以下形式的

const Rectangle & Rectangle ::operator =(const Rectangle & rhs)

我想知道使用&在范围分辨率运算符的左侧。

让我们取参数,它被声明为

const Rectangle & rhs

参数名称为rhs,类型为const Rectangle &

现在让我们回到返回类型。返回类型为

const Rectangle &

请注意,与号是返回类型的部分。

它可能更容易看到它是否被写为

const Rectangle&

(在Rectangle&之间没有空间)。

这意味着该函数返回对常量Rectangle对象的引用。


也许使用更容易说明

return-type class-name::operator =(argument list)

将函数和上面的行并排放置(添加一些间距),我们有:

return-type       class-name::operator =(argument list)
const Rectangle & Rectangle ::operator =(const Rectangle & rhs)