C++ en español: curso, seguridad y ejemplos

← Más ejemplos de código: Java, Python, C#, PHP, C, C++…

C++ es el lenguaje de los motores de videojuegos como Unreal, de los navegadores Chrome y Firefox, de buena parte de Windows y macOS, de las bases de datos y del software financiero y científico que necesita exprimir el hardware. Aquí tienes un curso desde cero con C++23 y GCC 15, una guía de los fallos de seguridad que más se repiten y de cómo detectarlos, las versiones y parches que hay que conocer, sus rarezas, un test y ejemplos para tareas concretas. Todo el código se compiló y se ejecutó antes de publicarse.

Curso · 8 leccionesAprende C++ desde cero, en españolDel primer g++ hola.cpp a un proyecto con CMake: tipos, control y funciones, contenedores y algoritmos, clases y RAII, punteros inteligentes y movimiento, plantillas, herencia y excepciones. Con esquemas, retos y el aviso real del compilador o del sanitizador en cada error.Ir al curso →

Seguridad: lo que no puede faltar

C++ hereda de C el acceso directo a la memoria, y con él muchos de sus fallos, aunque sus contenedores, sus punteros inteligentes y RAII evitan la mayoría si se usan bien. Casi todos los errores se repiten, y casi todos los detectan herramientas gratuitas que vienen con GCC y Clang. Cada lección del curso tiene su recuadro «Ojo con la seguridad», y estas dos páginas lo reúnen todo.

SeguridadLos fallos de seguridad típicos de C++ y cómo evitarlosDesbordamientos, iteradores invalidados, uso tras liberar o mover, referencias colgantes, enteros que se desbordan, carreras de datos e inyección de órdenes: cada uno con cómo lo detectan el compilador, los sanitizadores y la biblioteca endurecida, y la forma segura.Ver los fallos → Versiones y parchesDe C++98 a C++26, y cómo mantener C++ al díaQué trajo cada estándar, qué soporta tu compilador, las opciones que endurecen un ejecutable y el debate sobre la seguridad de memoria.Ver las versiones →

Practica y ponte a prueba

RarezasComportamiento indefinido y otras sorpresas de C++La declaración que parece una variable, vector<bool>, llaves frente a paréntesis, el map que inserta al leer y un std::move que no mueve nada.Ver las rarezas → Test · 24 preguntas¿Qué imprime este código?24 preguntas sobre el curso, con fragmentos de C++: decide qué escriben. Con la nota, los aciertos por lección y la salida real de GCC 15 en cada respuesta.Hacer el test →

Los ejemplos son programas de un solo archivo que se compilan con g++ -std=c++23 -Wall -Wextra programa.cpp -o programa. Usan C++23, así que hace falta GCC 14 o más nuevo (o Clang 19 con libstdc++ 14); funcionan en Linux, macOS y Windows.

Archivos y texto

Datos y algoritmos

El sistema: aleatorios, argumentos, archivos e hilos

Todo el código se compiló con GCC 15.3 (C++23, -std=c++23 -Wall -Wextra) y glibc 2.41 en un contenedor limpio antes de publicarse; las salidas, los avisos del compilador y los informes de los sanitizadores que aparecen están copiados de esa ejecución. ¿Buscas C? Está en C en español.