При инициализации массива строк в объекте появляется ошибка «too many initializers for 'String [0]'». В чем может быть проблема?

При инициализации массива строк внутри объекта на этапе компиляции происходит ошибка "too many initializers for 'String [0]'" и ругается как раз на массив.
При этом если тот же массив объявить в глобальном пространстве то все работает.
Вот пример кода
class Colors
{

  public:
    // Список цветов
    String colors[] = {
        "#00ff0d", 
        "#b71c1c", 
        "#9c27b0", 
        "#fbc02d", 
    };

    int _index = 1;      // Текущий номер цвета
    int _colorsSize = 0; // Количество цветов

    String init()
    {
        
    }

    String getColor()    {
       
    }

    String nextColor()    {
    }

    String prevColor()    {
    }
};
  • Вопрос задан
  • 420 просмотров
Решения вопроса 1
vt4a2h
@vt4a2h Куратор тега C++
Senior software engineer (C++/Qt/boost)
Потому, что это запрещено стандартом. Укажите размер массива или используйте std::array.
Советую добавить следующие флаги компиляции: -pedantic -Wall -Wextra.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@vanyamba-electronics
String colors[4] = {
        "#00ff0d", 
        "#b71c1c", 
        "#9c27b0", 
        "#fbc02d", 
    };
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы