C++ paso a paso

C++ paso a paso

El libro está estructurado como soporte de un curso de introducción al lenguaje C++. Todas las explicaciones van acompañadas de ejemplos, seguidos de ejecuciones que muestran la entrada/salida del ejemplo para afianzar los conceptos. Es aconsejable que el lector lea este libro delante del ordenador, para que al realizar y modificar los ejemplos comprenda mejor su funcionamiento. Además, al final de cada capítulo se proponen ejercicios de autoevaluación y de programación, todos ellos con sus correspondientes soluciones. La principal aportación de este libro, frente a otros libros similares, es que en él hemos querido reflejar los problemas a los que se enfrenta un lector cuando aprende un lenguaje de programación nuevo. La mayoría de los textos suponen que el lector no va a cometer errores, por lo que no hacen ninguna referencia a los posibles problemas de compilación del código o de comprensión de los conceptos explicados. Sin embargo, en este libro hemos optado por incluir algunos ejemplos con errores para mostrar los mensajes que genera el compilador. Sergio Luján Mora es Doctor Ingeniero en Informática por la Universidad de Alicante. Desde 1999 forma parte del Departamento de Lenguajes y Sistemas Informáticos de la Universidad de Alicante. Las asignaturas que imparte en la actualidad son "Programación en Internet" y "Programación y Estructuras de Datos". Ha escrito los libros "Programación en Internet: Clientes Web", "Programación de servidores web con CGI, SSI, e IDC", "Programación de aplicaciones web: historia, principios básicos y cliente web" y "Cuestionario básico sobre Programación en Internet".

  • Cover
  • Índice general
  • Índice resumido
  • Índice de cuadros
  • Índice de figuras
  • 1. Introducción
    • 1.1. Introducción
    • 1.2. Ventajas de C++
    • 1.3. Objetivos de este libro
    • 1.4. Contenido de los capítulos
    • 1.5. Sistema operativo y compilador
    • 1.6. Convenciones tipográficas
  • 2. Clases y objetos
    • 2.1. Introducción
    • 2.2. Declaración de una clase
    • 2.3. Acceso a los miembros de una clase
    • 2.4. Control de acceso
    • 2.5. Visualización de un objeto
    • 2.6. Empleo de punteros
    • 2.7. Separación de la interfaz y la implementación
    • 2.8. La herramienta make
    • 2.9. Ficheros de encabezado
    • 2.10. Uso de espacios de nombres
    • 2.11. Ejercicios de autoevaluación
    • 2.12. Ejercicios de programación
      • 2.12.1. Clase TVector
      • 2.12.2. Clase TCalendario
    • 2.13. Respuesta a los ejercicios de autoevaluación
    • 2.14. Respuesta a los ejercicios de programación
      • 2.14.1. Clase TVector
      • 2.14.2. Clase TCalendario
  • 3. Constructor y destructor
    • 3.1. Sobrecarga de funciones
    • 3.2. Constructor
    • 3.3. Constructor por defecto
    • 3.4. Otros constructores
    • 3.5. Constructor de copia
    • 3.6. ¿Un constructor en la parte privada?
    • 3.7. Destructor
    • 3.8. Forma canónica de una clase
    • 3.9. Ejercicios de autoevaluación
    • 3.10. Ejercicios de programación
      • 3.10.1. Clase TCoordenada
      • 3.10.2. Clase TVector
      • 3.10.3. Clase TCalendario
    • 3.11. Respuesta a los ejercicios de autoevaluación
    • 3.12. Respuesta a los ejercicios de programación
      • 3.12.1. Clase TVector
      • 3.12.2. Clase TCalendario
  • 4. Funciones y clases amigas y reserva de memoria
    • 4.1. Introducción
    • 4.2. Declaración de amistad
    • 4.3. Guardas de inclusión
    • 4.4. Administración de memoria dinámica
    • 4.5. Administración de memoria dinámica y arrays de objetos
    • 4.6. Compilación condicional
    • 4.7. Directivas #warning y #error
    • 4.8. Ejercicios de autoevaluación
    • 4.9. Ejercicios de programación
      • 4.9.1. Clase TVector
      • 4.9.2. Clase TCalendario
    • 4.10. Respuesta a los ejercicios de autoevaluación
    • 4.11. Respuesta a los ejercicios de programación
      • 4.11.1. Clase TVector
      • 4.11.2. Clase TCalendario
  • 5. Sobrecarga de operadores
    • 5.1. Introducción
    • 5.2. Puntero this
    • 5.3. Modificador const
    • 5.4. Paso por referencia
    • 5.5. Sobrecarga de operadores
    • 5.6. Restricciones al sobrecargar un operador
    • 5.7. ¿Función miembro o función no miembro?
    • 5.8. Consejos
    • 5.9. Operador asignación
    • 5.10. Constructor de copia y operador asignación
    • 5.11. Operadores aritméticos
    • 5.12. Operadores de incremento y decremento
    • 5.13. Operadores abreviados
    • 5.14. Operadores de comparación
    • 5.15. Operadores de entrada y salida
    • 5.16. Operador corchete
    • 5.17. Ejercicios de autoevaluación
    • 5.18. Ejercicios de programación
      • 5.18.1. Clase TCoordenada
      • 5.18.2. Clase TLinea
      • 5.18.3. Clase TVector
      • 5.18.4. Clase TCalendario
    • 5.19. Respuesta a los ejercicios de autoevaluación
    • 5.20. Respuesta a los ejercicios de programación
      • 5.20.1. Clase TCoordenada
      • 5.20.2. Clase TLinea
      • 5.20.3. Clase TVector
      • 5.20.4. Clase TCalendario
  • 6. Composición y herencia
    • 6.1. Introducción
    • 6.2. Composición
    • 6.3. Inicialización de los objetos miembro
    • 6.4. Herencia
    • 6.5. Ejercicios de autoevaluación
    • 6.6. Ejercicios de programación
      • 6.6.1. Clase TLinea
      • 6.6.2. Clase TCoordenadaV
      • 6.6.3. Clase TAgenda
    • 6.7. Respuesta a los ejercicios de autoevaluación
  • 7. Otros temas
    • 7.1. Forma canónica de una clase
    • 7.2. Funciones de cero parámetros
    • 7.3. Valores por omisión de una función
    • 7.4. Funciones inline
  • 8. Errores más comunes
    • 8.1. Introducción
    • 8.2. Sobre el fichero makefile y la compilación
    • 8.3. Sobre las directivas de inclusión
    • 8.4. Sobre las clases
    • 8.5. Sobre la sobrecarga de los operadores
    • 8.6. Sobre la memoria
    • 8.7. Sobre las cadenas
    • 8.8. Varios
  • 9. Ejercicios
    • 9.1. Mentiras arriesgadas
    • 9.2. La historia interminable
    • 9.3. Pegado a ti
    • 9.4. Clase TComplejo
  • A. Palabras clave
    • A.1. Lista de palabras clave
  • B. Operadores
    • B.1. Lista de operadores
  • C. Sentencias
    • C.1. Introducción
      • C.1.1. Asignación
      • C.1.2. Sentencia compuesta (bloque de código)
      • C.1.3. Sentencia condicional
      • C.1.4. Sentencia condicional múltiple
      • C.1.5. Sentencia de selección
      • C.1.6. Bucle con contador
      • C.1.7. Bucle con condición inicial
      • C.1.8. Bucle con condicion final
  • D. Herramientas
    • D.1. Editor JOE
      • D.1.1. Comandos básicos
      • D.1.2. Bloques de texto
      • D.1.3. Movimiento
      • D.1.4. Ayuda
    • D.2. Editor vim
      • D.2.1. Salir de vim
      • D.2.2. Introducción de nuevo texto
      • D.2.3. Movimientos del cursor
      • D.2.4. Posicionamiento del cursor sobre palabras
      • D.2.5. Deshacer
      • D.2.6. Adiciones, cambios y supresiones simples de texto
      • D.2.7. Búsquedas
      • D.2.8. Opciones del editor
    • D.3. Depurador gdb
      • D.3.1. Ejemplo de depuración
    • D.4. Depurador Valgrind
      • D.4.1. Memcheck
    • D.5. Compresor/descompresor tar
  • E. Código de las clases
    • E.1. La clase TCoordenada
    • E.2. La clase TLinea
    • E.3. La clase TVector
    • E.4. La clase TCalendario
  • Bibliografía recomendada
  • Índice alfabético
    • A
    • B
    • C
    • D
    • E
    • F
    • G
    • H
    • I
    • J
    • L
    • M
    • N
    • O
    • P
    • R
    • S
    • T
    • U
    • V
    • W

SUBSCRIBE TO OUR NEWSLETTER

By subscribing, you accept our Privacy Policy