二维数组下标[][]运算符载

此博客围绕C++下标重载展开。C++下标重载是重要的编程特性,能让对象像数组一样通过下标访问元素,在数据处理等场景有广泛应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#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;                //此处没有用到操作符重载,别忘了,[]符号本身就对指针具有提领作用

*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值