Объявление константного динамического массива
Объявление массива как указателя отлично работает
class Test {
char * const chars;
Test(int cnt) : chars(new char[cnt]) {}
}
вопрос а можно ли как-то такой массив не как указатель, а как массив [].
Вот так
class Test {
const char chars[];
Test(int cnt) : chars(new char[cnt]) {}
}
получаю ошибку
error: flexible array member 'Test::chars' not at end of 'class QueryValues' const char chars[];
Мне нужно чтобы повторное присвоение chars = ... вызывало ошибку, но при этом можно было изменять элементы массива
Ответы (1 шт):
Автор решения: user7860670
→ Ссылка
чтобы сразу видеть, что это будет массив, делайте так (и еще и ресурсы подчистяцаа):
#include <memory>
class Test {
::std::unique_ptr<char[]> const chars;
Test(int cnt) : chars{new char[cnt]{}} {}
};