我希望能够访问类中的多维数据,我发现:
提供多维数组访问语义,例如,实现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
并且我想使用建议的语法,但我无法实现它。如何编写重载赋值运算符以这种方式工作?
答案 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);