C++ mantiene una presencia sólida en áreas donde el rendimiento y el control sobre los recursos del sistema son decisivos. Desarrollado originalmente por Bjarne Stroustrup como una extensión del lenguaje C, incorpora mecanismos de programación orientada a objetos sin renunciar a la eficiencia que caracteriza a su predecesor.
Su capacidad para trabajar tanto en niveles altos de abstracción como cerca del hardware lo convierte en una opción habitual en motores de videojuegos, sistemas embebidos, aplicaciones financieras y software de infraestructura crítica.
Las revisiones del estándar, desde C++11 hasta C++20, han introducido mejoras sustanciales en la gestión de memoria, la concurrencia y las expresiones lambda, manteniendo el lenguaje al día sin romper la compatibilidad con el código existente.
Aunque lenguajes más modernos han ganado terreno en ámbitos como el desarrollo web o la ciencia de datos, C++ sigue siendo la referencia en sistemas donde la latencia importa y los recursos son limitados.
Su exigente curva de aprendizaje se compensa con un conocimiento que trasciende el propio lenguaje: entender C++ implica comprender cómo funcionan realmente la memoria, los punteros y la compilación. Por eso, cualquier programador que busque profundizar en los fundamentos de la computación encontrará en C++ un terreno fértil y, a menudo, desafiante.
Introducción al libro
Este manual recoge los apuntes de la asignatura “Informática Industrial y Comunicaciones” impartida en la Universidad Politécnica de Madrid.
Está concebido como material de apoyo para un curso presencial, por lo que su estructura sigue una progresión lógica: parte de una introducción al lenguaje C++ y sus diferencias con C, avanza hacia los pilares de la programación orientada a objetos (encapsulamiento, herencia y polimorfismo) y dedica los últimos capítulos a plantillas, excepciones, una breve incursión en UML y una introducción a los sistemas operativos.
El autor, Miguel Hernando, es profesor del Departamento de Electrónica, Automática e Informática Industrial y ha redactado el texto con un enfoque docente claro, incluyendo ejemplos y ejercicios.
El libro está dirigido principalmente a estudiantes universitarios que comienzan con la POO en C++, pero también puede servir a autodidactas con conocimientos previos de programación en C.
No se requieren nociones avanzadas de C++ para empezar; el primer capítulo repasa los fundamentos y las modificaciones que introduce C++ respecto a C. Aunque cubre aspectos modernos del lenguaje, el énfasis está en los mecanismos clásicos de la orientación a objetos, dejando temas como plantillas y excepciones como objetivos secundarios dentro del plan de estudios original.
Contenido del libro
A lo largo de nueve capítulos, el lector recorrerá los elementos esenciales de C++ desde una perspectiva orientada a objetos. Los primeros capítulos establecen la base: historia del lenguaje, diferencias con C, palabras reservadas, operadores, tipos de datos, funciones sobrecargadas, referencias, gestión de memoria con new y delete, espacios de nombres y entrada/salida.
A partir del capítulo 3, el foco se centra en las clases: definición, encapsulamiento, constructores y destructores, sobrecarga de operadores y miembros estáticos.
Los capítulos 4 y 5 abordan la herencia (simple y múltiple, clases base virtuales) y el polimorfismo (funciones virtuales, clases abstractas). El capítulo 6 introduce las plantillas, tanto de funciones como de clases, y muestra su uso en la biblioteca estándar. El capítulo 7 cubre el manejo de excepciones con try/catch/throw. Finalmente, los capítulos 8 y 9 ofrecen una visión introductoria a la representación UML y a los conceptos básicos de sistemas operativos, proporcionando un contexto más amplio para la programación de sistemas.
Cada capítulo incluye ejercicios y ejemplos prácticos, muchos de ellos tomados de fuentes académicas, y el autor invita a los lectores a enviar correcciones o sugerencias, lo que refuerza el carácter activo y colaborativo del material.
Índice del libro
- INTRODUCCIÓN A C++
- Historia de C++
- Lenguajes más relevantes en la actualidad
- Primeras nociones sobre la Programación Orientada a Objetos
- Organización de los apuntes
- MODIFICACIONES MENORES A C EN C++
- Extensión de los ficheros
- Palabras reservadas
- Nuevos operadores
- Comentarios
- Tipo de datos bool
- Tipos de datos definidos por el usuario
- Flexibilidad en la declaración de variables
- Modificaciones a las funciones
- Variables de tipo referencia
- Reserva dinámica de memoria: operadores new y delete
- Espacios de nombres
- Operaciones de entrada y salida
- Ejercicios
- EL CONCEPTO DE CLASE
- Las clases en C++
- Definición de una clase
- Encapsulamiento
- Constructores y destructores
- Métodos y operadores sobrecargados
- Miembros static
- Ejercicios
- LA HERENCIA
- Definición de herencia
- Construcción y destrucción de clases derivadas: inicializador base
- Herencia múltiple
- Clases base virtuales
- Conversiones entre objetos de clases base y clases derivadas
- El constructor de copia y el operador de asignación
- Ejemplo
- EL POLIMORFISMO
- Superposición y sobrecarga
- Polimorfismo
- Virtualidad en destructores y constructores
- Funciones virtuales puras y clases abstractas
- Ejemplos
- PLANTILLAS
- Introducción
- Concepto de plantilla
- Plantillas de funciones
- Clases genéricas
- Clases genéricas en la Librería Estándar
- Ejemplo
- MANEJO DE EXCEPCIONES Y TRATAMIENTO DE ERRORES
- Tratamiento de excepciones en C++
- Secuencia de ejecución del manejo de excepciones
- BREVE INTRODUCCIÓN A LA REPRESENTACIÓN UML
- Elementos de construcción de los diagramas UML
- Modelado estructural
- Diagramas
- INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS
Datos del libro
- Título: C++ estándar (Apuntes de Informática Industrial y Comunicaciones)
- Autor: Miguel Hernando Gutiérrez
- Categoría principal: Programación
- Subcategoría: C++
- Idioma: Español
- Licencia: Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported (CC BY-NC-ND 3.0)
Más libros en: C++, Programación
Aviso legal: Este libro se comparte únicamente con fines educativos. El contenido se distribuye bajo licencias Creative Commons o permisos explícitos de sus autores. OpenLibro no aloja material con derechos reservados.