返回常量引用的运算符

时间:2016-12-06 13:40:46

标签: c++

有人能告诉我如何覆盖一个operator(),它返回一个对基于零的位置(列x,行y​​)的二维数组元素的常量引用? 我将数组数据存储在T *缓冲区中。 我认为我的方法声明应如下所示:

const T & operator () (int x, int y) const {}

1 个答案:

答案 0 :(得分:0)

return T[x + y * columns]是常规方式,其中columns是"矩阵"中的列数。 return T[x * rows + y]是另一种选择,其中rows是"矩阵"中的行数。选择任一方案,取决于您是否希望通过增加行数或通过增加列数来简单地调整矩阵的大小。

我以前只见过使用行参数创建的这个函数。你的方式是特殊的吗?

如果您希望能够通过引用设置矩阵的元素,那么提供重载

T & operator () (int x, int y) {/*same function body*/}

太。最后,请考虑使用size_t作为参数,或者在您的课程中使用unsigned类型typedef