c++重载两个中括号[][]

c++重载两个中括号[][],就像二维数组一样使用
直接重在不行,得怎么弄?

使用指向指针的指针。

struct cpp
{
int * * p;

    /*/其他代码.../*/

    int * opt[](int n)
    {
         rtn p[n];
    }

};

如果是其他类型,你可以把int换成其他类型。
也可以打造成模板。

可以使用嵌套类,例如:

#include <cstdio>

#define MAXN 100

struct A
{
    struct B
    {
        int val[MAXN];
        int& operator [] (const int p)
        {
            return val[p];
        }
    } val[MAXN];
    B& operator [] (const int p)
    {
        return val[p];
    }
};

int main()
{
    static A x;
    x[1][2] = 9;
    printf("%d\n", x[1][2]);
}

http://blog.csdn.net/feike2008/article/details/5907303