运算符重载
在c++中怎么重载二维的下标运算符([ ][ ]),因为遇到这个问题不知好何解决,所以要请教大家:在一个类中定义一个矩阵(二维数组),然后通过重载二维下标运算符,来访问某个特定的元素。

程序代码:
#include<iostream>
using namespace std;
class Matrix
{
public :
Matrix(int r,int c):r_(r),c_(c)
{
matrix_=new int*[r];
for(int i=0;i<r;++i) matrix_[i]=new int[c];
}
~Matrix()
{
for(int i=0;i<r_;++i) delete[] matrix_[i];
delete [] matrix_;
}
int* operator[] (const int i)
{
return matrix_[i];
}
int* operator[] (const int i) const
{
return matrix_[i];
}
friend
ostream& operator<<(ostream& out,Matrix const& m)
{
for(int i=0;i<m.r_;++i)
{
for(int j=0;j<m.c_;++j)
out<<m[i][j]<<' ';
out<<endl;
}
return out;
}
friend
istream& operator>>(istream& in,Matrix & m)
{
for(int i=0;i<m.r_;++i)
for(int j=0;j<m.c_;++j)
in>>m[i][j];
return in;
}
private:
int** matrix_;
int r_,c_;
};
int main()
{
Matrix m(2,3);
cin>>m;
cout<<m<<endl;
return 0;
}
