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.”
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++.
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 są 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