如何重载数组索引运算符的多个下标?
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]
只要您按照描述重载下标运算符,您就可以这样做 - 它适用于您的指针建议和我的参考建议。
假设我有 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]
只要您按照描述重载下标运算符,您就可以这样做 - 它适用于您的指针建议和我的参考建议。