Я пытаюсь инициализировать массив с именем ARRAY
внутри конструктора класса с именем CLASS_A
, и этот массив должен быть доступен вложенным классом CLASS_B
. Я думал о том, чтобы сделать массив шаблоном, но это было тогда, когда все стало немного нечетким, как идти о синтаксисе.Неопределенная ссылка на ... в вложенном классе, пытающемся объявить массив?
Я почти уверен, что объявляя ARRAY статическим является частью решения и, возможно, сделать тип const int
шаблон как A
так, то шаблон будет выглядеть template <class A, const int D>
и декларация A ARRAY[SIZE];
. В любом случае, я сначала получил эту ошибку, компилируя код ниже, а затем сделал некоторые изменения и получил другую ошибку.
Это ошибка линкера, кстати
nested_class_incomplete_type.cpp|16|undefined reference to `CLASS_A<3>::ARRAY'|
nested_class_incomplete_type.cpp|28|undefined reference to `CLASS_A<3>::ARRAY'|
редактировать дубликат кода.
Читать ответ и сравнить его с сайтом. Я смею компилировать свой код, зная все в вашей ссылке. Это не имеет никакого отношения к этому. – pandoragami
Это имеет все, что связано с этим. Вам нужно было определить статический элемент данных. – juanchopanza