У меня есть этот код
И компилятор дал мне это предупреждение за объявление объекта slot1 в закрытом разделе класса Moveset.
Хотя это дало мне предупреждение, но, видимо, это не повлияло на работу программы. Это на самом деле влияет на что-нибудь? и что я тут не так делаю?
Редактировать: И какова разница между инициализатором статического члена и инициализатором нестатического члена?
Решение
Компилятор, вероятно, допускает это как расширение, это на самом деле не разрешено в старых стандартах C ++.
Или инициализируйте объект через список инициализатора конструктора, или включите C ++ 11, используя флаги, которые сообщает вам компилятор.
Пример использования списка инициализации конструктора:
Вы, кажется, используете > какой-то, поэтому я не знаю, как добавить флаги, но обычно где-то в настройках проекта есть вкладка для компилятора и его настроек, где вы можете добавить флаги (если флажок отсутствует для C ++ 11 уже), просто добавьте -std=c++11 там.
Другие решения
Редактировать: И в чем разница между инициализатором статического члена и инициализатором нестатического члена?
Не сильно отличается.
Инициализатор для инициализации static member является статическим инициализатором члена.
Инициализатор для инициализации не static member является нестатическим инициализатором члена.
I’m very new to C++ and I’m having trouble reading my errors I was able to eliminate most of them but I’m down to a few and I’m request help on them please.
Here is the program
1 Answer 1
This style of initialisation, using braces:
was introduced to the language in 2011. Older compilers don’t support it; some newer ones (like yours) only support it if you tell them; for your compiler:
However, this form of initialisation still isn’t valid for arrays created with new . Since it’s small and only used locally, you could declare a local array; this doesn’t need C++11 support:
This also has the advantage of fixing the memory leak — if you use new to allocate memory, then you should free it with delete when you’ve finished with it.
If you did need dynamic allocation, you should use std::vector to allocate and free the memory for you:
Beware that your version of GCC is quite old, and has incomplete support for C++11.
Доброго времени суток, практикуюсь в работе с массивами в C++. Вообщем выдает следующее предупреждение:
prg.cpp: In function ‘int main()’:
prg.cpp:9:11: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
int num[8]
using namespace std;
1, 5, 4, 2, 7, 2, 1, 3
while (a Вопрос задан более трёх лет назад