在这里,我理解 rhs 表示右手边,但我不明白编译器如何理解“rhs”指的是右手边。有人可以解释在哪种情况下需要这种重载?
MyArray<T>& operator=(const MyArray<T>& rhs);
原文由 onur 发布,翻译遵循 CC BY-SA 4.0 许可协议
在这里,我理解 rhs 表示右手边,但我不明白编译器如何理解“rhs”指的是右手边。有人可以解释在哪种情况下需要这种重载?
MyArray<T>& operator=(const MyArray<T>& rhs);
原文由 onur 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答1.3k 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
4 回答845 阅读
1 回答921 阅读
1 回答956 阅读
1 回答722 阅读
1 回答820 阅读
编译器不知道
rhs
代表“右手边”,实际上该变量的名称可以是您喜欢的任何名称。编译器“知道”如何格式化它,因为
operator=
的语法要求它是这种方式。该语言定义了此运算符的用法,采用以下形式:
The code above calls
A::operator=(const &other)
against the instance ofA
nameda
, and uses the instance ofA
namedb
作为other
。