更改二维数组类C ++中的项

时间:2018-02-10 14:14:30

标签: c++ arrays class

我已经在此页面的帮助下通过命令管理了一个项目。它有效,但似乎很复杂。

cout << arr[x][y];

现在,如何通过键入以下内容来更改数组中的特定数字:

arr[4][5]=10;

我的代码示例:

#include "stdafx.h"
#include <iostream>
using namespace std;

class Array {
private:
    int row, col;
    int** arr;
    int size;
    int count = 0;
public:
    Array() { arr = 0; size = 0; }
    Array(int row, int col);

    // a piece of code from stackoverflow.com/questions/6969881/operator-overload
    class Proxy {
    private:
        int* _arr;
    public:
        Proxy(int* _arr)  { 
            this->_arr = _arr; 
        }
        int operator[](int index) {
            return _arr[index];
        }
    };

    Proxy operator[](int index) {
        return Proxy(arr[index]);
    }
    //////////////////////////////////////////////
};

Array::Array(int row, int col) {
    size = row*col;
    this->row = row;
    this->col = col;
    arr = new int* [row];
    for (int i = 0; i < row; i++) {
        arr[i] = new int[col];
        for (int j = 0; j < col; j++) {
            arr[i][j] = 0;
        }
    }
}

void main() {
    Array first(5,5);
    cout << first[0][0] << endl;
    system("pause");
}

1 个答案:

答案 0 :(得分:0)

好的,我终于通过简单地放了一个&amp ;.这很傻。

...

    int& operator[](int index) {
        return _arr[index];
    }

...