在c ++中重载双下标operator [] []

时间:2014-12-31 08:52:46

标签: c++ double overloading operator-keyword

如何在c ++中重载双下标operator [] []?

我尝试了很多方法..没有具体的答案可供选择..

提前感谢..

我试过这个..但我知道它不正确

class Matrix {

    int row;
    int col;
    int ** values;
    int ptr;

    public:
        Matrix(const int r, const int c) {

            ptr = -1;
            row = r;
            col = c;

            values = new int*[row];

            for(int i=0; i<row; i++) {

                values[i] = new int[col];
            }
        }

        int & operator[](int p) {

            if(ptr == -1)
                ptr = p;

            return values[ptr][p];

        }

};

1 个答案:

答案 0 :(得分:1)

  

双下标运算符[][]

C ++中没有双下标运算符。你可以做的是重载operator[]以返回一个也重载operator[]的对象。这样您就可以编写m[i][j]