Назад к вопросам
JuniorТеорияЧасто
Какая строка этой программы не скомпилируется?
int main() {
int count = 3;
const int total = count + 1;
constexpr int kLimit = 2 * 5;
int copy = total;
copy = kLimit;
total = kLimit;
return total + copy;
}total = kLimit;: const-переменной нельзя присвоить новое значение
- Ждать, что
constтребует константу: это правилоconstexpr, аconstодин раз принимает любое значение, в том числеcount + 1, и запрещает только последующие изменения. - Ждать, что
copyунаследуетconst:constотносится к переменной, а не к значению, поэтому копиюtotalтипаintможно менять.
- Почему
kLimitможно объявитьconstexpr, аtotal— нельзя? - Когда переменную стоит объявить
const, а неconstexpr?