c++ - rhs 是如何工作的?

标签 c++ overloading

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

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

最佳答案

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

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

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

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

A a, b;
a = b;

上面的代码针对名为 aA 实例调用了 A::operator=(const &other),并使用了Ab 命名为 other

关于c++ - rhs 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40767476/

相关文章:

c++ - 通过重载 < 对自定义对象的 vector 进行排序

c++ - 模板函数重载

c++ - 指向基类的唯一指针

c++ - 在 C++ 中使 C 函数指针与基于 C 风格堆栈的调用机制一起工作

c# - 如何在 C# 中创建具有动态属性和属性的结构

c++ - 在线程中等待时我该怎么办

C++ 和 pin 工具——非常奇怪的 IF 语句双变量问题

c++ - 在 vector 中搜索其第一个参数的所有实例,然后将它们返回到 vector 中

c++ - 继承和成员函数模板重载

c++ - 通过 std::function 包装重载函数