c++语音类二维数组array类的设计并重载下标运算符、函数调用运算符

show:二维数组array类的设计并重载下标运算符、函数调用运算符

#include <iostream>
using namespace std;

class Array {
private:
  int** data;
  int rows, cols;
public:
  Array(int rows, int cols) : rows(rows), cols(cols) {
    data = new int*[rows];
    for (int i = 0; i < rows; i++) {
      data[i] = new int[cols];
    }
  }

  ~Array() {
    for (int i = 0; i < rows; i++) {
      delete[] data[i];
    }
    delete[] data;
  }

  int* operator[](int i) {
    return data[i];
  }
};

int main() {
  Array arr(2, 3);
  arr[0][0] = 1;
  arr[0][1] = 2;
  arr[0][2] = 3;
  arr[1][0] = 4;
  arr[1][1] = 5;
  arr[1][2] = 6;
  
  for (int i = 0; i < 2; i++) {
    for (int j = 0; j < 3; j++) {
      cout << arr[i][j] << " ";
    }
    cout << endl;
  }
  
  return 0;
}