二维数组的[]运算符重载
时间: 2024-06-02 17:06:16 浏览: 148
在C++中,可以通过重载数组的[]运算符来实现对二维数组的操作。在这种情况下,数组的[]运算符被重载为一个函数,该函数接受一个或多个参数,并返回一个元素。通过这种方式,我们可以使用类对象的形式来访问二维数组中的元素。
下面是一个示例代码来演示如何重载二维数组的[]运算符:
```
class TwoDimArray {
private:
int** data;
int rows;
int cols;
public:
TwoDimArray(int r, int c) {
rows = r;
cols = c;
data = new int*[rows];
for (int i = 0; i < rows; i++) {
data[i] = new int[cols];
}
}
int* operator[](int row) {
return data[row];
}
};
// 使用示例
int main() {
TwoDimArray arr(2, 3);
arr = 1;
arr = 2;
arr = 3;
arr = 4;
arr = 5;
arr = 6;
// 打印结果
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
cout << arr[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
在上面的示例代码中,我们定义了一个TwoDimArray类来表示一个二维数组。该类重载了[]运算符,使得我们可以使用arr[i][j]的形式来访问二维数组中的元素。在operator[]函数中,我们返回了data[row],这个是一个一维数组的地址,因此我们可以使用[]运算符再次访问该一维数组中的元素。
阅读全文