#include<iostream>
using namespace std;
class Matrix
{
public:
Matrix(int rows, int cols)
{
_rows = rows;
_cols = cols;
array = new int* [rows];
for (int i = 0; i < rows; i++)
{
array[i] = new int[cols];
}
}
~Matrix()
{
for (int i = 0; i < _rows; i++)
{
delete[] array[i];
}
delete[] array;
}
//重载[]符号
int* operator[](int row)
{
return array[row];
}
private:
int _rows;
int _cols;
int** array;
};
//试一试效果
int main()
{
Matrix mat(3, 4);
mat[1][1] = 1;
cout << mat[1][1] << endl;
}
/*
//mat[1][1] = 1; //我们可以把这一句分为两句
//step1
int* p = mat[1]; //此处等号右边返回的就是array[1]的地址,用到了操作符重载,p是一个指向int类型对象的指针
//step2
p[1] = 1; //此处没有用到操作符重载,别忘了,[]符号本身就对指针具有提领作用
*/
二维数组下标[][]运算符载
最新推荐文章于 2025-02-22 03:07:56 发布