Я пытаюсь инициализировать массив в классе заголовочный файл:Инициализировать массив в заголовочном файле C++
class C {
private:
static float p[26] = {
0.09, 0.02, 0.02, 0.04, 0.12, 0.02, 0.03,
0.02, 0.09, 0.01, 0.01, 0.04, 0.02, 0.06,
0.08, 0.02, 0.01, 0.06, 0.04, 0.06, 0.04,
0.02, 0.02, 0.01, 0.02, 0.01
};
...
Я получаю следующее сообщение об ошибке (ы) с г ++:
C.h:15:33: error: a brace-enclosed initializer is not allowed here before ‘{’ token
C.h:20:9: sorry, unimplemented: non-static data member initializers
C.h:20:9: error: ‘constexpr’ needed for in-class initialization of static data member ‘p’ of non-integral type
Я вынужден использовать c++0x
; как я могу определить этот массив, не делая p[0]
, p[1]
и т. д.?
Сделать 'constexpr' или инициализируйте его вне объявления класса. – user657267
@ user657267 Когда я инициализирую его в конструкторе класса, я получаю: «ошибка: присвоение массиву из списка инициализаторов» – sheppardzw
'вне объявления класса.' Не означает 'внутри конструктора', пожалуйста, ищите, как инициализировать статические элементы. – user657267