Detalle del libro
Ver Índice
Introducción
Cómo usar este libro
1. Los primeros pasos
1.1. Edición, compilación y enlazado
1.2. Disección de saludo.c
1.3. El primer programa en C++
1.4. Identificadores
1.5. Entrada de información en C
1.6. Entrada de información en C++
2. Tipos de datos y de almacenamiento
2.1. Representación binaria
2.2. Representación por exceso de enteros
2.3. Representación en complementoa 2 de los números enteros
2.4. El código ASCII
2.5. Representación en punto flotante
2.6. Tipos de datos
2.6.1. Tipos atómicos
2.6.2. Tablas
2.6.3. Punteros
2.6.4. Referencias
2.6.5. Tipos definidos
2.7. Los contenedores de la biblioteca estándar de C++
2.8. Constantes
2.8.1. Constantes enteras
2.8.2. Caracteres constantes
2.8.3. Constantes flotantes
2.8.4. Cadenas de caracteres
2.9. Variables locales y globales
2.9.1. La resolución de alcance
2.10. Espacios de nombres
2.11. Una declaración genérica
2.12. Tipos de almacenamiento
2.12.1. Almacenamiento automático
2.12.2. Almacenamiento estático
2.12.3. Almacenamiento externo
2.12.4. Cualificadores de los tiposde almacenamiento
2.13. Declaraciones y definiciones
3. Operadores e instrucciones de control
3.1. Operadores
3.1.1. Operador de resolución de alcance
3.1.2. Operadores sufijo y estructurales
3.1.3. Operadores unarios prefijo
3.1.4. Operador de acceso a miembro de clase
3.1.5. Operadores multiplicativos
3.1.6. Operadores aditivos
3.1.7. Operadores de desplazamiento
3.1.8. Operadores relacionales y de igualdad
3.1.9. Operadores de bits
3.1.10. Operadores lógicos
3.1.11. Operadores de asignación
3.1.12. Operador de expresión condicional
3.1.13. Separador de expresiones
3.2. Orden de evaluación
3.3. Conversiones de tipo
3.4. Instrucciones de control
3.4.1. La instrucción if-else
3.4.2. La instrucción switch
3.4.3. El bucle while
3.4.4. El bucle for
3.4.5. El bucle do
4. Punteros, referencias y tablas
4.1. Direcciones de memoria
4.2. Los operadores & y *
4.3. Punteros y tablas
4.4. Punteros y cadenas de caracteres
4.5. Operaciones válidas con punteros
4.6. Tablas de punteros y tablas multidimensionales
4.7. Punteros constantes
4.8. Punteros y referencias
4.9. Punteros y estructuras
4.10. Gestión dinámica de la memoria en C
4.11. Gestión dinámica de la memoria en C++
5. Funciones
5.1. Funciones sin parámetros
5.2. Declaración de una función
5.3. Funciones con parámetros
5.4. ¿Qué ocurre si una función no se declara antes de utilizarla?
5.5. Paso de argumentos por valory por referencia
5.6. Paso de tablas a funciones
5.7. Argumentos por omisión
5.8. Funciones con un número variable de argumentos
5.9. Paso de argumentos a main
5.10. ¿Qué tipos de datos puede devolveruna función?
5.11. Funciones y referencias
5.12. Recursividad
5.13. Punteros a funciones
5.14. Sobrecarga de funciones
5.15. El preprocesador
5.15.1. Inclusión de archivos
5.15.2. Sustitución de macros
5.15.3. Sustituciones de macros con parámetros
5.15.4. Inclusión y compilación condicional
5.16. Plantillas
5.17. Ejemplo
6. Entrada y salida avanzada
6.1. Los flujos estándar
6.2. Entrada y salida sin formato en C
6.2.1. Lectura de un carácter
6.2.2. Escritura de un carácter
6.2.3. Lectura de una cadena de caracteres
6.2.4. Escritura de una cadena de caracteres
6.3. Entrada y salida sin formato en C++
6.3.1. Lectura sin formato
6.3.2. Escritura sin formato
6.4. Formatos en C
6.4.1. Tipos
6.4.2. Anchura
6.4.3. Alineación
6.4.4. Precisión
6.5. Formatos en C++
6.5.1. Indicadores
6.5.2. Manipuladores
6.5.3. Manipuladores escritos por el programador
6.5.4. Anchura
6.5.5. Alineación
6.5.6. Precisión
6.5.7. Resumen de manipuladores
6.6. Flujos asociados con archivos en C
6.6.1. Archivos de salida
6.6.2. Archivos de entrada
6.6.3. Archivos binarios
6.7. Flujos asociados a cadenas en C
6.8. Flujos asociados con archivos en C++
6.8.1. Archivos de salida
6.8.2. Archivos de entrada
6.8.3. Archivos binarios
6.9. Flujos asociados a cadenas en C++
6.10. Estado de un flujo en C
6.11. Estado de un flujo en C++
6.12. Ejemplo
7. Gestión de errores y excepciones
7.1. Gestión clásica de errores
7.2. Gestión de excepciones en C++
7.3. Terminación de una función
8. Introducción a la Orientación a Objetos
8.1. Elementos de la programación orientada a objetos
8.2. Características esencialesde la programación orientada a objetos
8.3. Objetos
8.3.1. Estructura de un objeto
8.3.2. Relaciones entre los objetos
8.3.3. Propiedades de un objeto
8.3.4. Métodos
8.3.5. Encapsulamiento y ocultación de datos
8.3.6. Polimorfismo
8.3.7. Mensajes
8.4. Herencia
8.4.1. Herencia simple
8.4.2. Herencia múltiple
8.5. Ventajas de la orientación a objetos
8.6. Desventajas de la programación orientada a objetos
8.7. Análisis y Diseño Orientado a Objetos
8.7.1. Metodologías de análisis y diseño
9. Clases
9.1. Declaración de clases
9.1.1. Resolución de alcance
9.1.2. Objetos y métodos
9.1.3. Nueva versión del programa
9.1.4. Punteros a objetos
9.2. Constructores y destructores
9.2.1. Segunda versión del programa
9.2.2. Constructores con punteros a objetos
9.3. Especificadores de acceso
9.4. La variable this
9.5. Variables de clase
9.5.1. Métodos de clase
9.5.2. Utilización de las variables de clase
9.6. Clases y funciones amigas
10. Sobrecarga de operadores
10.1. La clase Fecha
10.2. Diferencia de dos fechas
10.3. Mejoras en el cálculo de fechas
10.4. Operadores sobrecargables
10.5. La clase VectorEntero
11. Plantillas de clases
11.1. Primer ejemplo: la plantilla Vector
11.2. La clase PiladeEnteros
11.3. Segundo ejemplo: plantilla de pilas
11.4. Listas ligadas
11.4.1. Un elemento genérico
11.4.2. Una lista genérica
12. Herencia
12.1. Primer ejemplo de herencia
12.1.1. Acceso protegido
12.2. Segundo ejemplo de herencia
12.2.1. Un diccionario con una lista ligada
12.2.2. Nueva versiónde DiccionarioConsecutivo
12.2.3. La superclase Diccionario
12.2.4. Funciones virtuales puras
12.2.5. Declaración de la herencia
12.2.6. Comparación de los dos programas
12.3. Constructores y destructoresde clases derivadas
13. Funciones y clases virtuales
C continúa siendo hoy una referencia clave para los programadores, como un lenguaje estructurado de alto nivel y propósito general que tenía el objetivo inicial de ser utilizado para la programación de sistemas. La extensión de este lenguaje, al incorporar los conceptos de la orientación a objetos, recibió el nombre de C++ y se ha convertido en uno de los lenguajes dominantes para la aplicación de estas técnicas durante las últimas decadas.
El libro describe de forma conjunta C y C++, analizando sus características estándar, para conseguir que el lector sea capaz de construir programas que puedan funcionar indistintamente en cualquiera de los entornos más utilizados.
Encontrará un amplio tratamiento de los conceptos comunes a ambos lenguajes; sin embargo, al presentar dichos conceptos, se señalan al mismo tiempo las diferencias de tratamiento y las extensiones introducidas por C++, que a menudo simplifican notablemente la programación. De esta manera, esta guía puede ser útil indistintamente tanto para el lector que no conozca ninguno de los dos lenguajes, como para el experto en C que desconozca C++.