二维数组类的<<重载问题...
我通过定义两个类实现了二维数组类,如 Array2 a(3,4);a[i][j]=i*4+j; 这种表示可以成立了。现在想通过重载<<来实现 cout<<a(i,j); 表示输出a[i][j]的值,老是无法避开Array1的私有成员,想用友元又不知道类嵌套里如何用,实现不能,求各位指导。。。
附上我写的俩类:
class Array1
{
private:
int *m_p;
int m_row;
int m_col;
int m_currentrow;
public:
Array1(int m,int n):m_row(m),m_col(n)
{
m_p=new int[m*n*sizeof(int)];
}
~Array1()
{
delete m_p;
}
int &operator[](int col)
{
return m_p[m_currentrow*m_col+col];
}
friend class Array2;
};
class Array2
{
private:
Array1 a_entry;
public:
Array2(){}
Array2(int m,int n):a_entry(m,n){}
Array1 &operator[](int row)
{
a_entry.m_currentrow=row;
return a_entry;
}
};