×
Traktatov.net » Язык программирования C++. Пятое издание » Читать онлайн
Страница 40 из 714 Настройки
(type-checking), или типизацией (typing).

Как уже упоминалось, тип ограничивает операции, которые можно выполнять с объектом. В языке С++ компилятор проверяет, поддерживает ли используемый тип операции, которые с ним выполняют. Если обнаруживается попытка сделать нечто, не поддерживаемое данным типом, компилятор выдает сообщение об ошибке и не создает исполняемый файл.

По мере усложнения рассматриваемых программ будет со всей очевидностью продемонстрировано, что строгий контроль соответствия типов способен помочь при поиске ошибок в исходном коде. Однако последствием статической проверки является то, что тип каждой используемой сущности должен быть известен компилятору. Следовательно, тип переменной необходимо объявить прежде, чем эту переменную можно будет использовать.

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

Идентификаторы (identifier) (или имена) в языке С++ могут состоять из символов, цифр и символов подчеркивания. Язык не налагает ограничений на длину имен. Идентификаторы должны начинаться с букв или символа подчеркивания. Символы в верхнем и нижнем регистрах различаются, т.е. идентификаторы языка С++ чувствительны к регистру.

>// определено четыре разных переменных типа int

>int somename, someName, SomeName, SOMENAME;

Язык резервирует набор имен, перечисленных в табл. 2.3 и 2.4, для собственных нужд. Эти имена не могут использоваться как идентификаторы.


Таблица 2.3. Ключевые слова языка С++

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

Таблица 2.4. Альтернативные имена операторов языка С++

>and>bitand>compl>not_eq>or_eq>xor_eq
>and_eq>bitor>not>or>xor 

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

Соглашения об именах переменных

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

• Идентификатор должен быть осмысленным.

• Имена переменных обычно состоят из строчных символов. Например, >index, а не >Index или >INDEX.

• Имена классов обычно начинаются с прописной буквы, например >Sales_item.

• Несколько слов в идентификаторе разделяют либо символом подчеркивания, либо прописными буквами в первых символах каждого слова. Например: >student_loan или >studentLoan, но не >studentloan.

Самым важным аспектом соглашения об именовании является его неукоснительное соблюдение.