← Все вопросы

Какие ключевые слова есть в C++ и можно ли использовать их как имена переменных?

Задан 24 месяца назад976 просмотров2 ответа
6

Перешёл на C++ после Python, пишу первые программки. Заметил, что часть слов компилятор не даёт использовать как имена переменных — например, попробовал так:

int class = 5;
int new = 10;

и получил кучу ошибок. Понимаю, что это зарезервированные слова, но хочется системно: какие вообще бывают ключевые слова c++ и зачем их столько? Есть полный список или хотя бы основные группы?

2 ответа

11
✓ Принятый ответ — помог автору

Да, class и new — это зарезервированные слова, их нельзя использовать как идентификаторы, поэтому компилятор и ругается.

Ключевых слов в C++ около 90 штук, но запоминать весь список наизусть не нужно. Удобнее держать в голове группы:

  • Типы данных: int, double, float, char, bool, void, long, short, unsigned, auto
  • Управление потоком: if, else, for, while, do, switch, case, break, continue, return, goto
  • ООП: class, struct, public, private, protected, virtual, this, new, delete, operator, friend
  • Модификаторы: const, static, constexpr, inline, volatile, mutable
  • Прочее: namespace, using, template, typename, sizeof, nullptr, true, false, enum, union, try, catch, throw

Пример корректного кода:

#include <iostream>
using namespace std;

int main() {
    const int n = 5;        // const, int — ключевые слова
    for (int i = 0; i < n; i++) {  // for, int
        cout << i << " ";
    }
    return 0;               // return
}

Просто не называйте переменные так же, как ключевые слова, и всё. Если очень хочется — добавьте суффикс: class_, new_value.

4

Маленькое дополнение: список ключевых слов растёт от стандарта к стандарту. В C++11 добавились nullptr, constexpr, auto (в новом смысле), decltype, в C++20 — concept, requires, co_await и т.д.

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

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект