是否可以以某种方式重载多维数组的运算符?
就像是:
class A {
...
int& operator[][] (const int x, const int y);
...
}
不,那是不可能的。不过,还有两种选择:
你可以有operator[]
返回较小维度的数组(对于 3D 数组,它将返回 2D 数组,对于 2D 数组,它将返回 1D 数组,对于 1D 数组,它将返回单个元素)。然后你可以用你想要的语法将它们“串在一起”。 (arr[x][y][z]
)
或者,您可以超载operator()
,因为这可能需要多个参数。
然后你可以像这样使用它,索引到 3D 数组,例如:arr(x,y,z)
但你不能超载[][]
or [][][]
作为单个操作员。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)