c++ - 我如何重载下标运算符以进行交换

标签 c++ operator-overloading

在以下声明中:

int arr[10];

这两项分配均有效:
arr[0] = 0;

1[arr] = 1;

如何实现operator[]函数以实现可交换性?

假设我们有这个类:
class Arr
{
private:
    int a, b, c, d;
public:
    int& operator[](...)
  ...
}

我们想访问Arr obj; ==> obj[1]返回b,而且1[obj]返回b
我怎样才能做到这一点?

最佳答案

你不能。 operator[]需要作为其左操作数类型的成员函数进行重载,而整数类型则无法实现。

关于c++ - 我如何重载下标运算符以进行交换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60946820/

相关文章:

c++ - std::copy: operator= 未找到

c++ - 为类方法中与类在同一命名空间中定义的结构调用重载运算符

c++ - 无法编译 MEX

c++ - 将容器中的每个元素划分为给定数字 C++

c++ - 将唯一数据推送到 vector 中

c++ - 这个指向成员转换的指​​针有什么问题?

c++ - 在 C++ 中使用自定义字符串类作为映射键值

c++ - Delphi 中 dynamic_cast 的等价物是什么?

c++ - 为什么会发生这种转变?

C++ - 为什么要根据 op+= 而不是相反的方式来实现 op+?