c++ - C++ 数组中的重载运算符

标签 c++ arrays operator-overloading

我对 C++ 比较陌生,所以才问这个问题。我正在尝试为数组中的读写操作重载 () 运算符。这是一个行优先数组,它将二维数组映射到一维。

这是我为读取操作编写的重载

//overloading read operator
    const double& operator()const(int n, int m){
      return arr_[n*column+m];
    }

现在我需要编写一个写入重载,在读取重载返回的位置插入一个 double 值。

//overloading write operator
    double& operator()(double d){

    }

我到底该怎么做。任何帮助表示赞赏。

最佳答案

重载本身不会插入任何东西;它会返回一个 (non-const) 引用,您可以使用它来分配给数组元素。重载将与您的 const 重载相同(除了这个之外您仍然需要它来访问常量对象),但没有任何 const:

double& operator()(int n, int m){
  return arr_[n*column+m];
}

如此使用

array(2,3) = 42;

关于c++ - C++ 数组中的重载运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28565679/

相关文章:

c++ - WINAPI:如何将编辑的文本转换为 std::string?

c++ - 递归函数返回 bool

c++ - 未知大小/参数类型的元组

python - 使运算符在 python 中重载更少冗余?

c++ - 在 Xcode 中工作的 CMake 中启用 AddressSanitizer 的正确方法是什么

arrays - Array.prototype.filter() 期望在箭头函数末尾返回一个值,React

arrays - 按类别和无限子类别对对象数组进行排序的最佳方法

javascript - 如何向数组添加值并用(竖线)而不是逗号分隔

java - 如果Java没有运算符重载, "string1"+ "string2"怎么可能?

c++ - enable_if 和转换运算符?