怎么用二维数组作为构造函数的参数来初始化矩阵类

如何用二维数组作为构造函数的参数来初始化矩阵类?
本帖最后由 shuyecy 于 2013-01-11 17:29:48 编辑
有一个矩阵类,矩阵的大小不定
class matrix
{
 int row,col;
int **a;
};

如何用二维数组及这个数据的行、列数作为参数来写构造函数初始化呢?如果用二维数组做参数,列就固定了吧,不行。。

------解决方案--------------------
以行、列作为构造函数的参数
自己在根据参数new 一个二维数组!  

------解决方案--------------------
楼主知道“如果用二维数组做参数,列就固定了”,这很好
但楼主知不知道为什么会这样?

所有数组,在作为函数参数传递时,都等价于“指向该一维数组首元素的指针”
二维数组,就是一维数组的一维数组,所以必须指定列数,因为列数不确定则首元素类型不确定,也就无法确定指针类型

由此可知,二维数组以及更多维数的数组,在跨函数时有诸多不方便之处
所以各种需要将大量数据跨函数传递的应用,使用的都是一维动态数组,寻找特定元素时自己计算行列偏移。最典型的就是图像的采集处理传递显示,处理图像数据从来都是使用一维动态数组。
楼主的这个矩阵类,同理

所以我再次质疑,多维数组到底有什么用?除了写起来略方便一点之外,用起来麻烦多了不知多少倍!
------解决方案--------------------
二维数组作函数参数,传首地址,加维度就可以了