4. Estructura del lenguaje
§1 Sinopsis
Esta parte proporciona una definición formal del lenguaje C++, describiendo las formas en que pueden agruparse correctamente los tokens ( 3.2), palabras que constituyen el lenguaje entendible por el compilador, para formar declaraciones; expresiones y otras unidades significativas. Para su análisis lo hemos descompuesto en 13 grupos según la clasificación que sigue:
Objetos
Referencias & definiciones
Definición provisional
Ámbito
Visibilidad
Duración
Unidad de compilación
EnlazadoSintaxis de declaraciones
Conversiones aritméticas
Inicialización
Especificadores de clase de almacenamiento
Modificadores auxiliares
Modificadores de funciónPuntero a objeto
Declaración de punteros
Aritmética de punteros
Referencias
Puntero a funciónDeclaración de matrices
Matrices alfanuméricas
Matrices de punteros
Matrices de matricesDeclaración
Definición
Argumentos formales y actuales
Llamada y conversión de argumentos
Valores devueltosDeclaración de estructuras
Inicialización
Operaciones permitidas
Acceso a miembros
Estructuras y funciones
Matrices de estructuras
Punteros a estructuras
Estructuras auto-referenciadasExpresiones
Asociatividad y precedencia de operadores
Orden de evaluación
Errores y desbordamientos
Expresiones con comaAritméticos
Asignación
Manejo de Bits
Operador Coma
Condicional
Op. de igualdad
Op. Lógicos
Modelado de tipos
Op. de Preproceso
Op. de puntero
Relacionales
sizeof
typeid
Op. primarios
Op. añadidos
Op. Unitarios
Sobrecarga de Operadores
Operador ::
Operador new
Operador deleteSentencias de etiqueta: case, default
Sentencias de selección: if … else, else if, switch
Sentencias de iteración: while, do...while, for
Sentencias de salto: break, continue, goto, returnCreación
Declaración
Nombres de Clases
Ámbito de nombres
Instanciado de Clases
this (palabra reservada)
Miembros estáticos
Clases polimórficas
Funciones virtuales
Funciones dinámicas
Clases abstractasFunciones genéricas
Clases genéricas
Aunque las secciones anteriores describen completamente el lenguaje desde una perspectiva formal, hemos añadido un capítulo adicional (§4.13) dedicado a los tecnicismos. En él se incluyen algunos consejos y reglas de buena práctica para la programación C++, así como algunos "idioms" (formas y técnicas particulares) que, en lenguajes tan complejos como el presente, constituyen una parte importante del "know-how" de los expertos.