Ktoś ma jakąś wskazówkę, co ten błąd może w rzeczywistości znaczyć? Potknę się trochę kodu, który nie może go obejść. Próbowałem już tylko h * 2 zamiast hprime, i po prostu w * 2 zamiast wprime. Za każdym razem mam ten sam kompilator (g ++ kompilator) Błąd:"nazwa zmiennej" nie może pojawić się w wyrażeniu stałym C++
grid.cpp: W konstruktorze ':: Siatka Siatka (int, int)':
grid.cpp: 34: error: „hprime "nie może pojawić się w stałej ekspresji
(kompilator nie zawsze mówi hprime, powie że cokolwiek tam jest, czy to h lub hprime czy szerokość). Każda pomoc będzie bardzo ceniona!
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>
}
}
}
To nie wygląda to jeszcze musi być 'const'. Nie modyfikujesz go i jest to tylko zakres funkcji. –