Неинициализированная константа, ошибка компиляции, C ++, GNU - PullRequest
0 голосов
/ 28 марта 2019

Я только что узнал, что такое константа в C ++, и попробовал следующий код в Code :: Blocks, и он дает мне следующие ошибки во время компиляции:

ошибка: неинициализированная константа 'b'[-fpermisive]

и

нет соответствия для оператора >>

(я использую пространство имен std).

Я предполагаю, что неинициализированные константы не разрешены в C ++.Почему это так?

Примечание: я учусь программировать для первого, поэтому я буду рад, если вы сможете объяснить это, не ссылаясь на какой-либо другой язык.

const int b;
cin >> b;

1 Ответ

0 голосов
/ 28 марта 2019

Константы должны быть инициализированы, когда они объявлены, после того, как они были объявлены, они не могут быть изменены.

Если вы хотите сохранить значение, которое вы читаете с консоли, в const, то, возможно, самый простой способ - это сделать с помощью функции:

int readInt()
{
    int i;
    std::cin >> i;
    return i;
}

int main()
{
    const int b = readInt();
}
...