Índex de continguts del llibre "Programación en C++"

Aquest índex està extret fonamentalment de la segona edició de "Programación en C++", Paraninfo 1995. Els punts assenyalats amb un asterisc corresponen a les noves incorporacions de l'estàndar ISO aparegudes des de la primera edició del llibre. Tanmateix aquesta estructura de capítols serà la que se seguirà (aproximadament) en la tercera edició del llibre anterior: "Programación en C++. Tercera Edición adecuada al estándar ISO" que està en realització.


1. Introducción

  • 1.- Factores de calidad en el software
  • 1.1.- Factores externos
  • 1.2.- Factores internos
  • 2.- Factores de calidad en un lenguaje
  • 3.- Programación orientada a objetos (POO)
  • 4.- Evolución del C
  • 5.- La aparición del C++
  • 6.- Ventajas y cualidades del C++
  • 7.- Presente y futuro del C++
  • 2. Conceptos básicos

  • 1.- Estructura básica de un programa en C++
  • 1.1.- Sentencias
  • 1.2.- Directivas
  • 1.3.- Comentarios
  • 1.4.- Expresiones
  • 2.- Tipos de datos y variables
  • 3.- Funciones
  • 4.- Identificadores y palabras reservadas
  • 5.- Operadores reservados
  • 6.- Literales
  • 6.1.- Literales enteras
  • 6.2.- Literales reales
  • 6.3.- Literales carácter
  • 6.4.- Literales cadena
  • 7.- Librerías estándar
  • 8.- Bases de entrada/salida
  • 9.- Convenciones estilísticas y de formato
  • 3. Sentencias de control

  • 1.- Verdadero y falso en C++
  • 2.- Sentencias condicionales
  • 2.1.- La sentencia if
  • 2.2.- La sentencia switch
  • 3.- Bucles
  • 3.1.- Sentencia do-while
  • 3.2.- Sentencia while
  • 3.3.- Sentencia for
  • 4.- Sentencias de salto
  • 4.1.- Sentencia break
  • 4.2.- Sentencia continue
  • 4.3.- Sentencia goto
  • 4.4.- Sentencia return
  • 4. Tipos de datos

  • 1.- Declaración de variables
  • 2.- Tipos fundamentales
  • 2.1.- Caracteres
  • 2.2.- Enteros
  • 2.3.- Uso de signed y unsigned
  • 2.4.- Tipos reales
  • 2.5.- El tipo void
  • 3.- Tipos derivados
  • 3.1.- Punteros
  • 3.2.- Vectores (arrays)
  • 3.3.- Referencias
  • 4.- Tipos compuestos
  • 4.1.- Estructuras
  • 4.2.- Uniones
  • 4.3.- Uniones anónimas
  • 4.4.- Campos de bits
  • 5.- Constantes no literales
  • 5.1.- Variables const
  • 5.2.- Tipos enumerados
  • 5.3.- Tipos enumerados anónimos
  • 6.- Variables volátiles
  • 7.- Creación de nuevos tipos
  • 8.- Conversión explícita de tipos (cast)
  • 9.- Esquema de tipos en C++
  • 10.- Campos (ámbitos) de la variables
  • 10.1.- Campos locales
  • 10.2.- Acceso a variables globales
  • 10.3.- Resumen de campos
  • 10.4.- Operador de campo ::
  • 11.- Almacenamiento de objetos
  • 11.1.- Declaraciones y definiciones
  • 11.2.- Modos de almacenamiento
  • 5. Operadores y expresiones

  • 1.- Operandos LValue
  • 2.- Operadores aritméticos
  • 3.- Incremento y decremento
  • 4.- Operadores relacionales y lógicos
  • 5.- Operadores de bit
  • 6.- Operadores de asignación
  • 7.- Conversiones aritméticas
  • 8.- Operador de evaluación
  • 9.- Operadores de indirección
  • 10.- Operador condicional
  • 11.- Operador sizeof
  • 12.- Precedencia, asociatividad y orden de evaluación
  • 13.- Cuadro resumen de operadores
  • 6. Funciones

  • 1.- Declaración de funciones. El prototipo
  • 2.- Implementación de funciones. La definición
  • 3.- Invocación de funciones. La llamada
  • 4.- Retorno de valores
  • 5.- La función main(), parámetros y retorno
  • 6.- Parámetros por valor y por referencia
  • 7.- Retornos por referencia
  • 8.- Parámetros por defecto
  • 9.- Parámetros indefinidos
  • 10.- Recursividad. Variables estáticas
  • 11.- Sobrecarga de funciones
  • 11.1.- "Name-mangling"
  • 12.- Conversión de tipos en C++
  • 13.- Resolución de ambigüedades en la sobrecarga
  • 14.- Sobrecarga de operadores
  • 14.1.- Operadores que pueden ser sobrecargados
  • 14.2.- Operadores unarios
  • 14.3.- Operadores binarios
  • 14.4.- Operadores de asignación
  • 14.5.- El operador de acceso al miembro: ->
  • 14.6.- El operador ()
  • 14.7.- El operador []
  • 7. Variables dinámicas

  • 1.- Punteros y direcciones
  • 2.- El puntero NULL
  • 3.- Punteros a carácter (cadenas)
  • 4.- Punteros void
  • 5.- Aritmética con punteros
  • 6.- Relación vectores-punteros
  • 7.- Operadores new y delete
  • 8.- Punteros y estructuras
  • 9.- Punteros a funciones
  • 8. Programación eficiente

  • 1.- Macros
  • 1.1.- Macros vs. constantes
  • 2.- Funciones inline
  • 2.1.- Restricciones en el uso de inline
  • 2.2.- Macros vs. funciones inline
  • 3.- Inclusión de instrucciones en ensamblador: asm
  • 4.- Variables en registros
  • 5.- Optimización en los bucles
  • 6.- Tácticas
  • 7.- Medidas de tiempos de programas
  • 8.- Uso de la memoria. Velocidad vs. Memoria
  • 9.- Eficiencia vs. Claridad
  • 10.- Opciones de compilación y enlazado (link)
  • 9. Clases

  • 1.- Clases y miembros
  • 1.1.- Métodos (funciones miembro)
  • 1.2.- Clases
  • 1.3.- El parámetros implícito this
  • 1.4.- Atributos
  • 1.5.- Métodos internos y externos
  • 2.- Control de acceso a los miembros
  • 2.1.- Campo de clase
  • 2.2.- Nivel de acceso y tipos de clases
  • 2.3.- Acceso entre clases: amigas
  • 3.- Sobrecarga de operadores en clases
  • 4.- Miembros estáticos
  • 4.1.- Atributos estáticos
  • 4.2.- Métodos estáticos
  • 4.3.- Resumen de miembros estáticos y amigos. Diferencias
  • 10. Creación e inicialización de objetos

  • 1.- Inicializaciones
  • 2.- Constructores y destructor
  • 2.1.- Constructor por defecto
  • 2.2.- Constructores generales
  • 2.3.- Declaración del destructor
  • 2.4.- El constructor copia y el operador asignación
  • 2.5.- Retornos de *this por valor y por referencia
  • 2.6.- Objetos temporales
  • 2.7.- Resumen
  • 3.- Conversiones estáticas
  • 3.1.- Constructor de conversión
  • 3.2.- Operador de conversión
  • 3.3.- Operador de asignación-conversión
  • 3.4.- Problemas con las conversiones
  • 4.- Objetos y miembros constantes
  • 4.1.- Métodos constantes
  • 4.2.- Atributos constantes
  • 5.- Inclusión de objetos en otros. Constructores anidados
  • 6.- Objetos dinámicos
  • 6.1.- Vectores de objetos
  • 6.2.- Punteros a objetos
  • 6.3.- Sobrecarga de new y delete
  • 6.4.- Punteros a miembros. Operadores de acceso
  • (*) 7.- Conversiones dinámicas
  • 7.1.- RTTI (Run-Time Type Information)
  • 7.2.- Nueva notación de conversión : dynamic_cast, static_cast, reinterpret_cast, const_cast
  • 7.3.- El operador typeid() y la clase type_info
  • 8.- Sobrecarga de algunos operadores
  • 7.1.- Sobrecarga de []
  • 7.2.- Sobrecarga de ()
  • 9.- Resumen de métodos fundamentales en una clase
  • 10.- Ejemplo final: la clase cadena
  • 11. Herencia y polimorfismo

  • 1.- Herencia en C++
  • 1.1.- Acceso a miembros heredados
  • 1.2.- Tipos de acceso a la clase base
  • 1.3.- Conversiones implícitas en la herencia
  • 2.- Especialización y acceso a miembros
  • 3.- Composición vs. herencia
  • 4.- Herencia múltiple
  • 4.1.- Orden de inicialización
  • 5.- Herencias virtuales
  • 6.- Polimorfismo
  • 6.1.- Funciones virtuales
  • 6.2.- Destructores virtuales
  • 6.3.- Construcciones virtuales
  • 6.4.- Clases abstractas
  • 6.5.- Implementación de las funciones virtuales
  • 6.6.- Resumen funciones virtuales
  • 12. Genericidad (templates)

  • 1.- Genericidad
  • 2.- Funciones genéricas
  • 2.1.- Sobrecarga de funciones genéricas
  • 2.2.- Especialización de funciones genéricas
  • 3.- Clases genéricas
  • 3.1.- Parámetros template constantes
  • 3.2.- Herencia de clases genéricas
  • 4.- Ejemplo: clase pila
  • 5.- Abstracción vs. genericidad
  • 13. Manejo de excepciones

  • 1.- Detección y acotación de errores
  • 2.- Errores típicos del C++
  • 3.- Control de errores
  • 4.- Tratamiento de excepciones en C++
  • 4.1.- El lanzamiento de la excepción: throw
  • 4.2.- La recogida: catch
  • 4.3.- El bloque de prueba: try
  • 4.4.- La lista throw
  • 4.5.- La función terminate() y unexpected()
  • 14. Modularidad

  • (*)1.- Herramientas del C++ para la construcción de librerías.
  • 2.- Preprocesado
  • 1.1.- Fases de preprocesado
  • 1.2.- Secuencias trigrafo
  • 1.3.- Definición de macros y expansión
  • 1.4.- Operadores # y ##
  • 1.5.- Inclusión de ficheros
  • 1.6.- Compilación condicional
  • 1.7.- Otras directivas
  • 1.8.- Macros predefinidos
  • 1.9.- Expresiones constantes
  • 3.- Modularidad
  • 2.1.- Inclusión de ficheros
  • 2.2.- Especificaciones de enlazado (linkage)
  • 2.3.- Declaración e implementación
  • 2.4.- Cabeceras (Header Files)
  • 2.5.- Restricciones
  • 2.6.- Duplicación de cabeceras. Referencias cruzadas
  • 2.7.- Uso de proyectos
  • 4.- Integración con otros lenguajes
  • (*) 5.- Campos de nombres
  • 6.- Tecnología de la programación modular
  • 15. La librería estándar ISO C++

  • (*)1.- La tardía aparición de la librería. Librerías Alternativas
  • (*) 2.- Librería de ANSI C
  • 2.1. Estructura y ficheros
  • 2.2. Entrada y salida
  • 2.3. Soporte internacional
  • 2.4. Manejo de memoria
  • (*) 3.- Librería estándar C++
  • 3.1. Colecciones (string, dynarray...)
  • 3.2. Algoritmos
  • 3.3. Soporte internacional
  • 4.- Entrada y salida
  • 4.1.- Introducción
  • 4.2.- Inserción y extracción. Operadores << y >>
  • 4.3.- Formato de E/S
  • 4.4.- Otras funciones de E/S
  • 4.5.- Ficheros
  • 4.6.- Streams cadena
  • 4.7.- Conclusiones
  • 16. Programación orientada a objetos en C++

  • 1.- Introducción
  • 2.- El proceso de desarrollo
  • 3.- Diseño orientado a objetos
  • 4.- Ejemplo de D.O.O.
  • 4.1.- Identificación de objetos
  • 4.2.- Atributos de los objetos
  • 4.3.- Definir relaciones entre objetos
  • 4.4.- Establecer las visibilidades
  • 4.5.- Agrupación
  • 4.6.- Especificación
  • 4.7.- Implementación
  • 5.- Conclusión
  • 17. La evolución del C++

  • 1.- Versiones
  • 1.1.- El C de Kernighan & Ritchie
  • 1.2.- ANSI C
  • 1.3.- C++ 1.x
  • 1.4.- C++ 2.0
  • 1.5.- C++ 2.1
  • 1.6.- C++ 3.0
  • 2. Diferencias
  • 2.1.- Restricciones fundamentales
  • 2.2.- Diferencias fundamentales
  • 2.3.- Combinación de C y C++
  • (*) 3. El Estándar
  • 3.1.- El ISO C++ 3.0.
  • 3.2.- Campos de nombre.
  • 3.3.- Tipos dinámicos.
  • 4. Versiones futuras

  • Tornar a la plana major.

    Tornar a la informació general de llibre.

    Tornar a la informació sobre l'àrea C++.


    © 1996-1997 José Hernández Orallo. >