Урок 16. Ключевые слова и идентификаторы в С++

   ⁄ 

 Обновлено 31 Мар 2018  ⁄ 

 ⁄   4 

⁄   5911

C++ имеет зарезервированный набор из 84 слов (включая С++14) для собственного использования. Эти слова называются ключевыми словами (keywords), каждое из них имеет свое особое значение.

Вот список всех ключевых слов в C++ (включая C++14):

alignas **
alignof **
and
and_eq
asm
auto
bitand
bitor
bool *
break
case
catch
char
char16_t **
char32_t **
class
compl
const
constexpr **
const_cast *
continue
decltype
default
delete
do
double
dynamic_cast *
else
enum
explicit *
export *
extern
false *
float
for
friend
goto
if
inline
int
long
mutable *
namespace *
new
noexcept **
not
not_eq
nullptr **
operator
or
or_eq
private
protected
public
register
reinterpret_cast *
return
short
signed
sizeof
static
static_assert **
static_cast *
struct
switch
template
this
thread_local **
throw
true *
try
typedef
typeid *
typename *
union
unsigned
using *
virtual
void
volatile
wchar_t *
while
xor
xor_eq

* — слова с одной звездочкой были добавлены в C++98. Некоторые учебники или справочники могут их пропускать.

** — слова с двумя звездочками были добавлены в C++11. Если ваш компилятор не поддерживает C++11, то они могут не работать.

C++11 также добавил два специальных идентификатора: override и final. Они имеют разные значения в разных контекстах.

Вы уже сталкивались с некоторыми ключевыми словами, в том числе с int, void и return. Вместе с набором операторов, keywords определяют весь язык C++ (не включая команд препроцессора). Поскольку они имеют особые значения, то для их выделения ваша IDE изменит их цвет (обычно на синий).



К тому времени, когда вы пройдете все уроки из этого туториала, вы узнаете, что делает большинство из этих слов.

Идентификаторы

Идентификатор – это имя переменной, функции, класса или другого объекта в C++. C++ дает возможность называть идентификаторы любыми именами, которыми вы только захотите. Тем не менее, есть несколько общих правил, которые необходимо соблюдать:

  Идентификатор не может быть ключевым словом. Ключевые слова зарезервированы.

  Идентификатор может состоять только из букв (нижнего или верхнего регистра), цифр или символов подчеркивания. Это означает, что все символы (кроме подчеркивания) и пробелы — запрещены.

  Идентификатор должен начинаться с буквы (нижнего или верхнего регистра) или с подчеркивания. Он не может начинаться с цифры.

  C++ различает нижний и верхний регистр. nvalue отличается от nValue и отличается от NVALUE.

Теперь, когда вы знаете, как можно называть объекты, давайте поговорим о том, как их нужно называть.

Во-первых, в C++ имена переменных начинаются с буквы в нижнем регистре. Если имя переменной состоит из одного слова, то всё должно быть записано в нижнем регистре.

Как правило, имена функций также начинаются с буквы в нижнем регистре (хотя есть некоторые разногласия по этому вопросу). Мы будем придерживаться этого стиля, поскольку даже функция main() (главная функция, которую должны содержать все программы) начинается с буквы в нижнем регистре, как и все функции из стандартной библиотеки C++.

Имена идентификаторов, которые начинаются с заглавной буквы, используются для структур, классов и перечислений (всё из этого мы рассмотрим несколько позже).

Если имя переменной или функции состоит из нескольких слов, то есть два варианта: разделить подчеркиванием или использовать CamelCase (несколько слов пишутся слитно, без пробелов, и каждое новое слово пишется с заглавной буквы). CamelCase (в переводе «ВерблюжийСтиль») получил такое название из-за заглавных букв, которые напоминают горбы верблюда.

Хотя даже стандартная библиотека C++ использует символ подчеркивания для переменных и функций, мы же мы будем использовать CamelCase — для наилучшей читабельности кода. Иногда вы будете видеть сочетание двух способов: подчеркивание для переменных и CamelCase для функций.

Стоит отметить, что если вы работаете с чужим кодом, то хорошей практикой будет придерживаться стиля, в котором написан этот код, даже если он не соответствует нашим рекомендациям.

Во-вторых, не начинайте ваши имена с символа подчеркивания, так как такие имена уже зарезервированы для ОС, библиотеки и/или используются компилятором.

В-третьих, и это, пожалуй, самое важное правило из всех – используйте в качестве идентификаторов только те имена, которые реально описывают то, чем является объект. Очень характерно для неопытных программистов сокращать имена переменных, дабы сэкономить время при наборе кода или потому, что они думают, что всё будет понятно и так. В большинстве случаев это является ошибкой. В идеале, переменные нужно называть так, чтобы человек, который первый раз увидел ваш код, понял как можно скорее, что этот код делает. Через 3 месяца, когда вы будете пересматривать свои программы, вы забудете, как они работают, и потом будете благодарны самому себе за то, что называли переменные по сути, а не как попало. Чем сложнее код, тем проще и понятнее должны быть идентификаторы.

int ccount Плохо Никто не знает, что такое ccount
int customerCount Хорошо Теперь понятно, что мы считаем
int i Плохо* В большинстве нетривиальных случаев — плохо, в простых примерах — может быть (например, в циклах)
int index 50/50 Хорошо, если очевидно, что индексом чего является i
int totalScore Хорошо Всё понятно
int _count Плохо Не начинайте имена переменных с подчеркивания
int count 50/50 Хорошо, если очевидно, что мы считаем
int data Плохо Какой тип данных?
int value1, value2 50/50 Может быть трудно понять разницу между ними
int numberOfApples Хорошо Всё понятно
int monstersKilled Хорошо Всё понятно
int x, y Плохо* В большинстве нетривиальных случаев — плохо, в простых примерах — может быть (например, в математических функциях)

*Примечание: Использовать тривиальные имена для переменных, которые имеют тривиальное использование — можно (например, для переменных цикла, в простых математических функциях и т.д.).



В-четвертых, уточняющий комментарий всегда будет только плюсом. Например, мы объявили переменную с именем numberOfChars, которая должна хранить число символов определенной части текста. Сколько символов в тексте «Hello, World!»: 10, 11, 12 или 13? Это зависит от того, учитываем ли мы пробелы и знаки препинания или нет. Вместо названия переменной numberOfCharsIncludingWhitespaceAndPunctuation лучше написать хороший комментарий, который прояснит ситуацию:

Тест

Какие из переменных неправильно названы и почему?

  int result;

  int _oranges;

  int NUMBER;

  int the name of a variable;

  int TotalCustomers;

  int void;

  int countFruit;

  int 4orYou;

  int kilograms_of_pipe;

Ответ

  int _oranges. Имена переменных не должны начинаться с подчеркивания.

  int NUMBER. Имена переменных должны начинаться с буквы в нижнем регистре.

  int the name of a variable. Имена переменных не могут содержать пробелы.

  int TotalCustomers. Имена переменных должны начинаться с буквы в нижнем регистре.

  int void. void — это ключевое слово и его нельзя использовать в качестве идентификатора для своих переменных или функций.

  int 4orYou. Имена переменных не могут начинаться с цифр.

Переменные result, countFruit и kilograms_of_pipe соответствуют правилам.

Оценить статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (110 оценок, среднее: 4,90 из 5)
Загрузка...
Подписаться на обновления:

Комментариев: 4

  1. Erding:

    Очень нравятся уроки, поскольку всё понятно описано даже для людей, знакомых с этим достаточно плохо.
    Я хотел спросить совета у Вас:
    В свои 15-ть лет, я безумно хочу обучиться программированию на языке C++. Читаю абсолютно все Ваши уроки полностью, а также прочитал весь курс введения. Но часто, я просыпаюсь с мыслью, что я опять забыл тот или иной код. Я нахожу свободное время, сажусь, снова перечитываю урок, записываю это где-нибудь, но не могу выйти на более-менее автоматический режим. (Без заметок, подсказок.) Это, иногда, попросту угнетает, отбивая при этом желание продолжать.
    Подскажите, пожалуйста, что нужно делать, для лучшего запоминания информации, которую я получаю с Ваших уроков?

    1. Li4ik:

      Помнить всё и не нужно. Сомневаюсь, что есть программисты, которые запоминают всю, однажды полученную, информацию раз и на всю жизнь. Это нормально, всё не выучишь и не запомнишь. Главное — понять суть, получить базис (фундамент) знаний, а всё остальное — это практика. Ведь для создания программы Вам нужно реализовать теорию, т.е. написать код, исходя из своих знаний. Отсюда и вытекает факт, что для лучшего запоминания чего-либо — нужно это применить на практике. Прочитали урок — применили на практике. Хорошим вариантом будет написания своей программы или игрушки (небольшой, простенькой), можно попробовать найти на YouTube видео-уроки в стиле «Как написать/создать игру на С++» и повторять код. А если Вы забыли какой-то термин, понятие или правило, то это не страшно — зашли в Интернет, перечитали, вспомнили. И, как уже было сказано, всё не выучишь и не запомнишь, а практическое применение знаний — самый лучший вариант запоминания информации.

  2. Сергей:

    По мере продвижения по уроках с++ , количество оценок заметно
    уменьшылось.

    1. Li4ik:

      Далеко не все продолжают учиться, мотивация кончилась, так всегда 🙂

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

ПОДПИСЫВАЙТЕСЬ

НА КАНАЛ RAVESLI В TELEGRAM

@ravesli

ПОДПИСАТЬСЯ БЕСПЛАТНО