【发布时间】:2016-06-26 13:13:52
【问题描述】:
我被困住了。我希望能够接受用户输入,并使用构造函数创建一个公共二维数组,我的代码如下: `
class myarray
{
char** grid;
int dimX,dimY;
public:
myarray(){grid=0;}
myarray(int m,int n) {grid = new char* [m]; for(int i=0;i<m;i++) {grid[i]=new char [n];} dimX=m; dimY=n;}
~myarray(){for(int i = 0; i < dimX; ++i) {delete[] grid[i];} delete[] grid;}
char** fetcharray(){return grid;}
int main()
{
srand(time(NULL));
bool check(true),arrayinitialized(false);
while(check)
{
char a; //a-firstinp;
int m,n; //m,n-grid size
cin>>a;
myarray c;
switch(a)
{
case 'i':
case 'I': {cin>>m>>n;
c(m,n);
arrayinitialized=true;
break;}
case ...:...
default:{cout<<"Invalid input! Try again: "; break;}
`
正如我所说,我在“c(m,n);”行出现错误,错误提示“错误:不匹配调用‘(myarray) (int&, int&)’”
如果我在其中一种情况下在本地声明 c,程序就可以正常工作,但是我希望它可以在整个 main() 中访问
提前谢谢你!
【问题讨论】:
-
我会使用一维数组[m*n] 并提供一个'运算符 () (row, col)' 来映射到二维。
标签: c++ arrays class matrix constructor