C++重载运算符[][]

我们都知道C++可以重载运算符,但是当我实现一个矩阵类时我忽然产生了一个奇怪的想法,那就是"[][]"这个运算符如何重载?

最后发现只需要重载“[]”就可以实现了,代码如下:

template <class T>
class BMat{
public:
	BMat(int w_, int h_){
		with = w_;
		hight = h_;
		mat = new T*[with];
		for(int i = 0; i < with; i++)
			mat[i] = new int[hight];
	}

	~BMat(){
		for(int i = 0; i < with; i++)
			delete mat[i];
		delete mat;
	}

	T* operator[](int x){
		if(x < with)
			return mat[x];
	}
private:
	int with;
	int hight;
	T **mat;
};

int main(){
	BMat<int> mat(3,3);
	mat[2][1] = 5;
	cout << mat[2][1] << endl;
	return 0;
}

这样就简单的实现了一个矩阵类

发布了23 篇原创文章 · 获赞 27 · 访问量 1147

猜你喜欢

转载自blog.csdn.net/BLUCEJIE/article/details/104369840