任何人都有任何线索,这个错误实际上可能意味着什么?我绊倒了一些似乎无法解决的代码。我已经用h * 2而不是hprime试过了,只是w * 2而不是wprime。每次我得到相同的编译器(G ++编译器)的错误:“变量名”不能出现在常量表达式中C++
grid.cpp:在构造 '网格::网格(INT,INT)':
grid.cpp:34:错误:“hprime '不能出现在一个常量表达式中(编译器并不总是说hprime,它会说任何变量在那里,不管是h还是hprime或者宽度)。任何帮助将不胜感激!
class Grid
{
public:
Grid(int x, int y);
~Grid();
void addObstacle(int w, int h);
void toString();
int** grid;
int height;
int width;
};
Grid::Grid(int w, int h)
{
width = w;
height = h;
const int hprime = h*2;
const int wprime = w*2;
grid = new int[wprime][hprime];
for(int x=0;x<wprime;x++) {
for (int y=0; y<hprime;y++) {
grid[x][y] = 0;<br>
}
}
}
它看起来并不像它甚至需要是'const'。你没有修改它,它只是功能范围。 – 2009-10-01 03:37:35