7.1 Słowa kluczowe i nazwy

Nazwy (identyfikatory) są wprowadzane do jednostki kompilacji (pliku wraz z innymi plikami włączonymi za pomocą #include) poprzez deklaracje. Deklaracja określa własności i sposób interpretacji nazwy (zmiennej, funkcji, itd.). Zazwyczaj (choć, jak zobaczymy, nie zawsze) deklaracja wiąże się z definicją, czyli z przydziałem pamięci na nazwany obiekt. Obowiązuje przy tym „zasada jednej definicji.”

W jednostce kompilacji nie może być więcej niż jednej definicji tej samej zmiennej, funkcji, klasy, wyliczenia lub wzorca.

Zasada ta nie dotyczy jednak deklaracji, które mogą się powtarzać.

Język C++ definiuje pewne słowa kluczowe jako identyfikatory zarezerwowane: nie mogą pojawić się w innym znaczeniu niż nadane im w standardzie języka. W szczególności, nie mogą być użyte jako identyfikatory (nazwy) zmiennych, funkcji, klas czy przestrzeni nazw. Poniższa tabela przedstawia wszystkie 84 słowa kluczowe języka C++.

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

Legalne identyfikatory, inne niż podane tu słowa kluczowe, mogą w zasadzie zawierać dowolną liczbę znaków alfanumerycznych (liter i cyfr) oraz znaki podkreślenia. W szczególności, inaczej niż w Javie, nie wolno w nazwach stosować znaków walut (np. znaku dolara). Tak jak w innych językach, pierwszy znak nazwy nie może być cyfrą.

Litery duże i małe rozróżnialne; nazwa val_X jest inna niż np. nazwa val_x.

Przyjęło się, że nazwy zmiennych piszemy małymi literami, nazwy typów wielu programistów rozpoczyna od dużej litery, a nazwy stałych zdefiniowanych przez dyrektywę preprocesora #define — samymi dużymi literami.

Jeśli nazwa składa się z kilku słów, to oddzielamy je znakami podkreślenia (numer_klienta) lub każde słowo, z wyjątkiem, być może, pierwszego, rozpoczynamy od litery dużej (nazwaPliku) — jest to tzw. notacja „wielbłądzia” (ang. CamelCase).

T.R. Werner, 21 lutego 2016; 20:17