¿Alguien tiene alguna pista de lo que este error realmente podría significar? Me estoy tropezando con un código que parece que no puede evitarlo. Lo he intentado con solo h * 2 en lugar de hprime, y solo con w * 2 en lugar de con wprime. Cada vez que sale el mismo compilador (g ++ compilador) error de:'nombre de variable' no puede aparecer en una expresión constante C++
grid.cpp: En constructor 'cuadrícula :: GRID (int, int)':
grid.cpp: 34: error: 'hprime 'no puede aparecer en una expresión constante
(el compilador no siempre dice hprime, indicará cualquier variable que exista, ya sea h o hprime o ancho). ¡Cualquier ayuda sería muy apreciada!
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>
}
}
}
No parece que ni siquiera tiene que ser 'const'. No lo estás modificando y solo es un alcance funcional. –