您的位置:首页 > 其它

类写:用指针动态开辟二维数组,有什么问题?请高手指教

2013-06-18 11:26 218 查看
// 动态开辟二维数组

#include <iostream>

#include <iomanip>

using namespace std;

class newTwoArray

{

public:

newTwoArray(){}

newTwoArray(int r,int c);

int* newArray();

void setRC();

int getRC();

void show();

void ruin();

protected:

int **p;

int row;

int col;

};

//定义构造函数

newTwoArray::newTwoArray(int r,int c)

{

row = r;

col = c;

}

void newTwoArray::setRC()

{

cin>>row>>col;

}

int newTwoArray::getRC()

{

return row,col;

}

// new 动态开辟内存空间

int* newTwoArray::newArray()

{

p = NULL;

p = new int*[row];

for (int i=0; i<row; i++)

p[i] = new int[col];

return *p;

}

void newTwoArray::show()

{

cout<<"they are:\n";

for (int j=0; j<row; j++) // 行

{

for (int k=0; k<col; k++) // 列

{

p[j][k] = (j+1)*(k+1);

cout<<setw(6)<<p[j][k]<<" : "<<setw(8)<<&p[j][k];

}

cout<<endl;

}

}

// 销毁内存空间

void newTwoArray::ruin()

{

for (int o=0; o<row; o++)

{

delete [] p[o];

}

delete p;

p = NULL;

}

// 主函数

int main()

{

void Show(newTwoArray& array);

newTwoArray array1(3,4),array;

array1.newArray();

array1.show();

Show(array);

array.ruin();

return 0;

}

//

void Show(newTwoArray& array)

{

int n;

cout<<"please enter the n: ";

cin>>n;

for (int t=0; t<=n; t++)

{

if (n==0)

cout<<"No chance!\n";

else

{

cout<<"Please enter the row and col:(Chances More "<<n-t<<")\n";

array.setRC ();

array.getRC ();

array.newArray();

array.show ();

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: