c++ 用两个类实现二维数组
时间: 2023-12-24 07:04:22 浏览: 115
可以使用一个类作为二维数组的行,另一个类作为二维数组的整体。
首先,定义一个行类,它包含一个一维数组和一个变量表示行数:
```
class Row {
private:
int* arr;
int size;
public:
Row(int n) {
arr = new int[n];
size = n;
}
int& operator[](int index) {
if (index < 0 || index >= size) {
// 处理越界
}
return arr[index];
}
};
```
然后,定义一个二维数组类,它包含一个二维数组的行数和列数,以及一个二维数组的行的数组:
```
class Matrix {
private:
int rows, cols;
Row** rows_array;
public:
Matrix(int m, int n) {
rows = m;
cols = n;
rows_array = new Row*[m];
for (int i = 0; i < m; i++) {
rows_array[i] = new Row(n);
}
}
Row& operator[](int index) {
if (index < 0 || index >= rows) {
// 处理越界
}
return *rows_array[index];
}
};
```
现在可以创建一个二维数组对象,并使用行索引和列索引来访问元素:
```
Matrix mat(3, 4);
mat[1][2] = 3;
```
这将在第二行第三列设置一个值为3的元素。
阅读全文