Таблица констант в C++

Я работаю над проектом с программным обеспечением, использующим компилятор C++ (VisualStudio 2010 C++). Программа предназначена для создания численной модели реальных электрических цепей. Я пишу некоторые коды в разных разделах программного обеспечения, это код C++, но некоторые переменные должны иметь некоторые префиксы (SeqInteger вместо Integer, ptVar, если Var - это имя соединения в модели и т. Д.). Затем программа генерирует файлы cpp с кодом, который я написал, и другими разделами в нем.

Проблема: я пытаюсь создать таблицу, содержащую постоянные значения, для этого я написал:

SeqReal A[4];

A[4]={1 , 2, 1 , 3};

Однако я получаю эту ошибку:

compiling src/SeqClass__cpl.cpp
SeqClass__cpl.cpp
src/SeqClass__cpl.cpp(74) : error C2059: syntax error : '{'
src/SeqClass__cpl.cpp(74) : error C2143: syntax error : missing ';' before '{'
src/SeqClass__cpl.cpp(74) : error C2143: syntax error : missing ';' before '}'
make: *** [WinNT\debug64/SeqClass__cpl.obj] Error 512

Я понимаю, что синтаксис моей строки неправильный, но как мне его написать? Раньше у меня так работало.

Надеюсь, я ясно выразился. Я привел только этот простой пример, но на самом деле у меня такая же ошибка при попытке инициировать матрицы формы 28*16.

Спасибо!

2 ответа

Решение

Если вы хотите объявить массив, а затем назначить его с помощью списка инициализаторов, вы можете сделать:

int i = 0;
for (int v : {1 , 2, 1 , 3})
  A[i++] = v;

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

SeqReal A[4] = {1, 2, 1, 3};

Или используйте контейнер, например std:: array:

std::array<SeqReal, 4> arr;
arr = {1, 2, 1, 3};
Другие вопросы по тегам