3.2.1 Palabras clave
§1 Sinopsis
Las palabras clave ("Keywords") son identificadores utilizados por el lenguaje para fines especiales, y no pueden ser utilizadas como identificadores (por esta razón se suelen denominar también palabras reservadas). Por ejemplo, no pueden ser utilizadas como nombres de variables, clases o funciones.
El primitivo C de Kerningham y Ritchie tenía solo 27; el C estándar las amplió a 32, y C++ añadió algunas más. Hay que advertir que aunque el Estándar C++ define perfectamente cuales son las palabras reservadas, incluidas a continuación, los compiladores pueden incluir algunas otras por su cuenta, que son por tanto dependientes de la plataforma.
Nota: recordar que el compilador C++Builder dispone de una opción -A de compilación ( 1.4.3) que permite forzar las reglas a ANSI C++ estricto, con el fin de conseguir un código lo más portable posible. Con esta opción, las palabras clave no estrictamente ANSI son ignoradas como tales. El resto de compiladores (MS Visual y GCC) tienen opciones similares.
§2 Palabras clave del C++ Estándar
Keyword | referencia | Keyword | referencia | Keyword | referencia |
asm | 4.10 | and | 4.9.8 | and_eq | 4.9.8 |
auto | 4.1.8a | bitand | 4.9.8 | bitor | 4.9.8 |
bool | 3.2.1b | break | 4.10.4 | case | 4.10.2 |
catch | 1.6 | char | 2.2.1 | class | 4.11.2 |
compl | 4.9.8; 4.9.3 | const | 3.2.1c | const_cast | 4.9.9a |
continue | 4.10.4 | default | 4.10.2 | delete | 4.9.21 |
do | 4.10.3 | double | 2.2.1 | dynamic_cast | 4.9.9c |
else | 4.10.2 | enum | 3.2.3g, 4.7 | explicit | 4.11.2d1 |
export | 4.12.1b | extern | 4.1.8d, 1.4.4 | false | 3.2.1b |
float | 2.2.1 | for | 4.10.3 | friend | 4.11.2a1 |
goto | 4.10.4 | if | 4.10.2 | inline | 4.4.6b |
int | 2.2.1 | long | 2.2.3 | mutable | 4.1.8e |
namespace | 4.1.11 | new | 4.9.20 | not | 4.9.8 |
not_eq | 4.9.8 | operator | 4.9.18 | or | 4.9.8 |
or_eq | 4.9.8 | private | 4.11.2a | protected | 4.11.2a |
public | 4.11.2a | register | 4.1.8b | reinterpret_cast | 4.9.9d |
return | 4.4.7 | short | 2.2.3 | signed | 2.2.3 |
sizeof | 4.9.13 | static | 4.1.8c | static_cast | 4.9.9b |
struct | 4.5 | switch | 4.10.2 | template | 4.12 |
this | 4.11.6 | throw | 1.6 | true | 3.2.1b |
try | 1.6 | typedef | 3.2.1a | typeid | 4.9.14 |
typename | 3.2.1e | union | 4.6 | unsigned | 2.2.3 |
using | 4.1.11 | virtual | 4.11.2c1 | void | 2.2.1 |
volatile | 3.2.1d; 4.1.9 | wchar_t | 2.2.1a1, 3.2.3d | while | 4.10.3 |
xor | 4.9.8 | xor_eq | 4.9.8 |
En este apartado estudiaremos las palabras clave C++, que por una u otra
razón no sean introducidas en ningún otro epígrafe. Para distinguirlas del
resto, a lo largo de esta obra, cuando aparecen fuera del código fuente, se
imprimen en negrita y color negro. Por ejemplo, int es una palabra clave...
Nota: las palabras clave __try y try son una excepción. Dentro del mecanismo de manejo de excepciones de C++ ( 1.6), la palabra try es necesaria como contraparte de catch. Por otra parte, try no puede ser sustituida por __try. La palabra clave __try solo se utiliza emparejada con __except o __finally.