我们都知道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;
}
这样就简单的实现了一个矩阵类