【发布时间】:2014-03-02 10:17:51
【问题描述】:
我在 stackoverflow 和 google 上搜索了很多,但没有我的情况。我想声明我的类框的二维数组。它工作正常,然后我需要一个打印功能。如果我在 main() 中打印了数组,那很好,但是现在有了打印机功能,我似乎遇到了很多错误。请帮我解决我的错误。
#include <iostream>
class box
{
private:
char life;
public:
box();
void display();
void input_alive();
void input_dead();
};
box::box()
{
life = '0';
}
void box::display()
{
std::cout << " " <<life <<" ";
}
void box::input_alive()
{
life = '1';
}
void box::input_dead()
{
life = '0';
}
void printer(box *array, int yy, int xx)
{
int i, j;
for(i=0; i<yy; i++) //PRINTER
{
for(j=0; j<xx; j++)
{
array[i][j].display();
if (j+1 == xx) //just newline for separate rows
std::cout << std::endl;
}
}
}
int main()
{
int row=5, col=5;
box arr[row][col];
arr[3][4].input_alive();
arr[1][1].input_alive();
printer(arr, row, col);
return 0;
}
这种通过引用传递数组的语法在普通的 int/char 数组中工作得很好,但为什么不在这里呢。如果我将打印机功能放在 main 中,它可以正常工作:(。我必须使用 new 还是什么?或者我如何将 box 数组传递给函数?谢谢。
【问题讨论】:
-
数组不是指针。