ошибки компилятора — неверное использование нестатического члена данных c ++ student

Я нуб, который только начинает программировать, и мне было интересно, почему я получаю сообщение об ошибке, которое говорит: недопустимое использование элемента не статических данных ‘Lavirint :: n’?

class Lavirint{
private:
int n, m;
bool mapa[n + 2][m + 2]; //is this valid?
...
}

Изменить — я добавил несколько других переменных в той же строке, но они не вызывают больше ошибок.

2

Решение

Нет, это недействительно. Вы не можете использовать переменную-член в месте, где нет конкретного объекта, но также вы не можете использовать любое значение, неизвестное во время компиляции, для определения размера массива C внутри класса.

Фактическое сообщение об ошибке, которое вы цитировали, относится к этой первой (и более трудной для понимания) проблеме. Ваши переменные-члены имеют значения только в контексте определенного объекта, но структура класса является чем-то общим для всех объектов и определяется до того, как будет создан какой-либо объект.

Вторая проблема является более фундаментальной, но первая проблема, очевидно, остановила форму компилятора, заметив вторую.

4

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector