|
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);}
}
//最近写求行列式的程序时刚好想到这个东东,还盼大虾指教 |
|