如何重载数组索引运算符的多个下标?

How to overload multiple subscript of array index operator?

假设我有 class,让它成为 foo。它包含对象 someclass obj[10][10].

现在我想引用 bar,它是类型 foo 的对象,这样 bar[7] 等同于 bar.obj[7] 和 returns 类型为 someclass* 的对象。这很简单。

但我也想以 bar[7][3] 等同于 bar.obj[7][3] 和 returns 类型 someclass 的对象的方式引用 bar .现在没那么简单...

怎么做?

in such a way that bar[7] is equivalent to bar.obj[7] and returns an object of type someclass*.

但是如果它 return 是 someclass*,那么它就不会等同于 bar.obj[7]。它需要 return someclass(&)[10] 才能等效。

请注意,您可能还希望有一个 const 重载。

But I also want to refer to bar in such a way that bar[7][3]

只要您按照描述重载下标运算符,您就可以这样做 - 它适用于您的指针建议和我的参考建议。