在这里,我理解 rhs 表示右手边,但我不明白编译器如何理解“rhs”指的是右手边。有人可以解释在什么情况下需要这种重载吗?
MyArray<T>& operator=(const MyArray<T>& rhs);
最佳答案
编译器不知道 rhs
代表“右侧”,实际上该变量的名称可以是您喜欢的任何名称。
编译器“知道”如何格式化它,因为 operator=
的语法要求它是这样的。
class A
{
public:
A& operator=(const A& other);
};
该语言定义了该运算符的用法以采用以下形式:
A a, b;
a = b;
上面的代码针对名为 a
的 A
实例调用了 A::operator=(const &other)
,并使用了A
将 b
命名为 other
。
关于c++ - rhs 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40767476/