用于多维数据访问的overload()运算符

时间:2017-08-16 11:05:11

标签: c++

我希望能够访问类中的多维数据,我发现:

  

提供多维数组访问语义,例如,实现3D数组访问a [i] [j] [k] = x;,operator []必须返回对2D平面的引用,该平面必须有自己的operator [],它返回对1D行的引用,必须有operator []返回对元素的引用。为了避免这种复杂性,一些库选择重载operator(),以便3D访问表达式具有类似Fortran的语法a(i,j,k)= x;

on http://en.cppreference.com/w/cpp/language/operators

并且我想使用建议的语法,但我无法实现它。如何编写重载赋值运算符以这种方式工作?

2 个答案:

答案 0 :(得分:3)

例如,它将是

byteArray

答案 1 :(得分:0)

感谢您的帮助,我有一个解决方案:

T& operator()(unsigned width, unsigned height) {
    return my_data[width + height * data_width];
}

双向工作:

my_class(1,2) = value;
value = my_class(1,2);
相关问题