rhs 是如何工作的?

新手上路,请多包涵

在这里,我理解 rhs 表示右手边,但我不明白编译器如何理解“rhs”指的是右手边。有人可以解释在哪种情况下需要这种重载?

 MyArray<T>& operator=(const MyArray<T>& rhs);

原文由 onur 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 508
2 个回答

编译器不知道 rhs 代表“右手边”,实际上该变量的名称可以是您喜欢的任何名称。

编译器“知道”如何格式化它,因为 operator= 的语法要求它是这种方式。

 class A
{
public:
   A& operator=(const A& other);
};

该语言定义了此运算符的用法,采用以下形式:

 A a, b;
a = b;

The code above calls A::operator=(const &other) against the instance of A named a , and uses the instance of A named b 作为 other

原文由 Chad 发布,翻译遵循 CC BY-SA 3.0 许可协议

rhs 只是人们常用的那个算子的名字,没有特殊含义。定义运算符的方式始终使参数成为右侧元素。

原文由 Kiskae 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题