就是……人家想写一个二维数组类……(好吧我承认这是作业的一部分)
然后……呃,是写成一位数组的,就像这样:
private:
int row, col;
int * array;
public:
Array2()
{
array = NULL;
}
Array2(int Row, int Col)
{
row = Row;
col = Col;
array = new int[row * col];
}
嗯,其实,到此为止还好,但是老师是这么要求的:
比如有 Array2 a;吧,
可以直接用a[i][j]或者a(i,j)的形式访问“二维数组”的元素……
呃,大概是需要对()和[]重载吧……
但是果断地在这个节骨眼上拙计了……
我说……这看起来不现实啊,比如:
int operator [] (int n)
{
return array[n];
}
???不对啊哪哪都不对啊,有两个[]呢,要算出具体是哪一号元素必须得两个[]里的元素都弄出来啊……
还是说……
嗯……
用一维数组实现的点子本身就很扯?可是,据说助教是这么说的啊……
呃,总而言之,咳咳咳,有人指点一下么……
然后……呃,是写成一位数组的,就像这样:
private:
int row, col;
int * array;
public:
Array2()
{
array = NULL;
}
Array2(int Row, int Col)
{
row = Row;
col = Col;
array = new int[row * col];
}
嗯,其实,到此为止还好,但是老师是这么要求的:
比如有 Array2 a;吧,
可以直接用a[i][j]或者a(i,j)的形式访问“二维数组”的元素……
呃,大概是需要对()和[]重载吧……
但是果断地在这个节骨眼上拙计了……
我说……这看起来不现实啊,比如:
int operator [] (int n)
{
return array[n];
}
???不对啊哪哪都不对啊,有两个[]呢,要算出具体是哪一号元素必须得两个[]里的元素都弄出来啊……
还是说……
嗯……
用一维数组实现的点子本身就很扯?可是,据说助教是这么说的啊……
呃,总而言之,咳咳咳,有人指点一下么……

