注册 登录
编程论坛 C++教室

c++求助,望各位路过的大虾帮忙

zhanglei845 发布于 2007-03-17 09:33, 443 次点击

如下:
用class来实现可变的二维数组
类型name[m][n],即m,n可变
类型*p,**p必须用
里面必须有
1)构造函数
2)析构函数
3)拷贝构造
希望大虾们不吝赐教,给出原代码,在下不胜感激

4 回复
#2
zhanglei8452007-03-17 10:29
各位帮忙啊
#3
zhanglei8452007-03-17 11:14
没人帮忙??
#4
Arcticanimal2007-03-17 20:53
class arry2
{
public:
arry2(int first,int second);
~arry2();
arry2(arry2);
int getfirst(){return fir;}
int getsecond(){return sec;}
int getvalue(int m,int n){return arry[m][n];} //获取m行n列处的值
private:
int** arry; //arry[]即是 int* 类型
int fir,sec; //保存数组的两个参数
};
arry2::arry2(int first,int second) //说明:每一次调用new后应该检查分配状况,以下省略
{ fir=first;sec=second;
arry=new int*[fir]; //先分配一个长度为first的整型指针数组
for(int i=0;i<fir;i++) //然后给每个整型指针分配长度为second的数组
arry[i]=new int[sec];
}
arry2::~arry2()
{
for(int i=0;i<fir;i++)
delete [] arry[i];
delete []arry;
}
arry2::arry2(arry2 tocopy)
{
fir=tocopy.getfirst();sec=tocopy.getsecond(); //建立一个与tocopy一样大小的二维数组
arry=new int*[fir];
for(int i=0;i<fir;i++)
arry[i]=new int[sec];
for(int m=0;m<fir;m++) //逐一复制tocopy的值
for(int n=0;n<sec;n++)
{ arry[m][n]=tocopy.getvalue(m,n);}
}
//最近写求行列式的程序时刚好想到这个东东,还盼大虾指教

[此贴子已经被作者于2007-3-17 20:55:28编辑过]

#5
zhanglei8452007-03-17 21:43
,thanks
1