PopularRecorrido
Aprende C++
Un curso de C++ online, interactivo y gratis. Escribes C++ en cada lección —fundamentos, pointers, clases, templates— con pistas de IA cuando el compiler te grita, y un certificado gratis al terminar.
211,803+ codders inscritos
- Apto para principiantes
Ayuda de codificación con IA
Lecciones interactivas prácticas
Narración de audio en cada lección
Cuestionarios para poner a prueba tu conocimiento
Certificado gratuito de finalización
Programa
Sección 1
Fundamentos
Empezar secciónEmpezarExpandirContraerConstruye una base sólida con conceptos esenciales y habilidades básicasIntroducción
4 lecciones325- 01C++Reto
- 02¡Hola mundo!RetoQuiz
- 03ComentariosQuiz
- 04Estructura básica de un programaRetoQuiz
Variables Parte 1
6 lecciones846- 01Números enterosRetoMaestríaQuiz
- 02Números realesRetoMaestríaQuiz
- 03StringRetoQuiz
- 04BooleanRetoQuiz
- 05CharRetoQuiz
- 06ConstantesRetoQuiz
Variables Parte 2
5 lecciones334- 01Declaración de tiposRetoQuiz
- 02Convenciones de nomenclaturaQuiz
- 03Resumen - Inicializar variablesReto
- 04Type Casting Parte 1RetoQuiz
- 05Type Casting Parte 2Quiz
Operadores Parte 1
7 lecciones654- 01Operadores aritméticosRetoQuiz
- 02Operador móduloRetoQuiz
- 03Incremento/DecrementoRetoQuiz
- 04Post-incremento/decrementoRetoQuiz
- 05Atajos aritméticosRetoQuiz
- 06Operadores de comparaciónRetoQuiz
- 07Comparación de stringsQuiz
Operadores Parte 2
4 lecciones423- 01Operadores lógicos Parte 1RetoQuiz
- 02Operadores lógicos Parte 2RetoQuiz
- 03Repaso - Lógica simpleReto
- 04Operadores lógicos Parte 3RetoQuiz
Toma de decisiones
6 lecciones637- 01Sentencia IfRetoQuiz
- 02If - ElseRetoQuiz
- 03Sentencia SwitchRetoQuiz
- 04Operador condicionalRetoQuiz
- 05Repaso - If ElseReto
- 06If - Else anidadosRetoQuiz
Conceptos básicos de Entrada/Salida
5 lecciones524- 01Sentencia coutRetoMaestríaQuiz
- 02Sentencia cinRetoQuiz
- 03Entrada de cadenasQuiz
- 04Resumen - Hasta 120Reto
- 05Resumen - Verdadero o FalsoReto
Calculadora de números
Proyecto4 lecciones16- 01Mensaje de bienvenidaRetoQuiz
- 02Obtención de númerosProyecto
- 03Operaciones básicasProyecto
- 04Salida con formatoProyecto
Bucles
9 lecciones760- 01Bucle For - Parte 1RetoQuiz
- 02Bucle WhileRetoQuiz
- 03Bucle Do WhileRetoQuiz
- 04BreakRetoQuiz
- 05ContinueRetoQuiz
- 06Bucle For - Parte 2Quiz
- 07Bucles anidadosRetoQuiz
- 08Bucles infinitosQuiz
- 09Resumen - Entrada dinámicaReto
Funciones
7 lecciones739- 01Declarar una funciónRetoQuiz
- 02ParámetrosRetoMaestríaQuiz
- 03Tipos de retornoRetoQuiz
- 04Sobrecarga de funcionesQuiz
- 05Repaso - Función SigmaReto
- 06Repaso - Función de validaciónReto
- 07Funciones voidRetoQuiz
Fundamentos de Arrays
9 lecciones848- 01Declaración de ArraysRetoQuiz
- 02Acceso a elementosRetoQuiz
- 03Modificación de elementosRetoQuiz
- 04Repaso - Imprimir Array con formatoReto
- 05Arrays y funcionesQuiz
- 06Repaso - Producto de un ArrayReto
- 07Repaso - Array invertidoReto
- 08Bucle for mejoradoRetoQuiz
- 09Operaciones comunes con ArraysRetoQuiz
Cadenas
5 lecciones441- 01Cadenas al estilo C - Parte 1RetoQuiz
- 02Cadenas al estilo C - Parte 2Quiz
- 03Operaciones con cadenasRetoQuiz
- 04Funciones de cadenas - Parte 1RetoQuiz
- 05Funciones de cadenas - Parte 2RetoQuiz
Desafíos finales
3 lecciones37- 01Patrones numéricosRetoQuiz
- 02Buscador de patronesReto
- 03Calculadora de calificacionesReto
Sección 2
Lógica y Flujo
Empezar secciónEmpezarExpandirContraerDesarrolla habilidades de resolución de problemas y crea programas dinámicos e interactivosPunteros y memoria
8 lecciones757- 01¿Qué es un puntero?Quiz
- 02Operador de direcciónRetoQuiz
- 03Operador de desreferenciaRetoQuiz
- 04Punteros nulosRetoQuiz
- 05Punteros y arraysRetoQuiz
- 06Memoria dinámica con 'new'RetoQuiz
- 07Liberar memoria con 'delete'RetoQuiz
- 08Resumen: Práctica de punterosReto
Vectores (Arrays dinámicos)
9 lecciones861- 01Introducción a std::vectorQuiz
- 02Creación de un VectorRetoQuiz
- 03Agregar elementosRetoQuiz
- 04Acceder a los elementosRetoQuiz
- 05Tamaño del VectorRetoQuiz
- 06Iterar con un bucle ForRetoQuiz
- 07Bucle For basado en rangosRetoQuiz
- 08Eliminar elementosRetoQuiz
- 09Resumen - Operaciones con VectoresReto
Proyecto: Herramienta de lista de tareas
Proyecto5 lecciones1- 01Descripción general del proyectoReto
- 02Añadir una tareaProyecto
- 03Ver tareasProyecto
- 04Eliminar una tareaProyecto
- 05Finalizar la herramientaProyecto
Mapas (Pares Clave-Valor)
7 lecciones644- 01Introducción a std::mapQuiz
- 02Crear un MapaRetoQuiz
- 03Acceder y Modificar ValoresRetoQuiz
- 04Comprobar ClavesRetoQuiz
- 05Eliminar ParesRetoQuiz
- 06Iterar sobre un MapaRetoQuiz
- 07Resumen - Frecuencia de PalabrasReto
Proyecto: Herramienta de inventario
Proyecto5 lecciones1- 01Configuración del proyectoReto
- 02Agregar y actualizar artículosProyecto
- 03Verificar existenciasProyecto
- 04Eliminar existenciasProyecto
- 05Imprimir el informe de inventarioProyecto
Conjuntos (Elementos únicos)
6 lecciones538- 01Introducción a std::setQuiz
- 02Crear conjunto y añadir elementosRetoQuiz
- 03Comprobar elementosRetoQuiz
- 04Eliminar elementosRetoQuiz
- 05Iterar sobre un conjuntoRetoQuiz
- 06Resumen - Números únicosReto
Funciones avanzadas
7 lecciones653- 01Paso por referenciaRetoQuiz
- 02Introducción a expresiones lambdaRetoQuiz
- 03Lambdas con parámetrosRetoQuiz
- 04Lambdas con valores de retornoRetoQuiz
- 05Introducción a la recursividadQuiz
- 06Factorial recursivoRetoQuiz
- 07Ordenamiento con lambdaRetoQuiz
Manejo básico de errores
6 lecciones540- 01Introducción a las excepcionesQuiz
- 02Los bloques 'try' y 'catch'RetoQuiz
- 03La palabra clave 'throw'RetoQuiz
- 04Diferentes tipos de excepcionesRetoQuiz
- 05El manejador genérico (catch-all)RetoQuiz
- 06Repaso: División seguraReto
Desafíos finales
3 lecciones3- 01Filtrado de datos de vectoresReto
- 02Búsqueda de valores en MapReto
- 03Punteros y arrays dinámicosReto
Sección 3
Programación Orientada a Objetos
Empezar secciónEmpezarExpandirContraerDescubre cómo organizar el código con clases, objetos y estructuras reutilizablesFundamentos de OOP
11 lecciones1187- 01Archivos externosRetoQuiz
- 02Construcción y compilación en C++RetoQuiz
- 03Archivos de cabecera y archivos fuenteRetoQuiz
- 04Namespaces y alcanceRetoQuiz
- 05Introducción a OOP en C++RetoQuiz
- 06Clases vs ObjetosRetoQuiz
- 07El puntero 'this'RetoQuiz
- 08Métodos (Funciones miembro)RetoQuiz
- 09Atributos (Miembros de datos)RetoQuiz
- 10Conceptos básicos de Ctors y DtorsRetoQuiz
- 11Resumen - Calculadora simpleReto
Gestión de memoria
6 lecciones644- 01Memoria Stack vs HeapRetoQuiz
- 02Punteros y referenciasRetoQuiz
- 03Memoria dinámica (new/delete)RetoQuiz
- 04Punteros inteligentes en C++RetoQuiz
- 05RAII en C++RetoQuiz
- 06Resumen - Gestor de arrays dinámicosReto
Constructores y Destructores
9 lecciones972- 01Constructor por defectoRetoQuiz
- 02Constructor parametrizadoRetoQuiz
- 03Constructor de copiaRetoQuiz
- 04Constructor de movimientoRetoQuiz
- 05Listas de inicialización del constructorRetoQuiz
- 06Constructores delegadosRetoQuiz
- 07Análisis profundo del destructorRetoQuiz
- 08Regla de tres / cinco / ceroRetoQuiz
- 09Resumen - Clase StringReto
Propiedades de clase
7 lecciones753- 01Miembros de instancia vs. estáticosRetoQuiz
- 02Getters y SettersRetoQuiz
- 03Funciones miembro constRetoQuiz
- 04Palabra clave mutableRetoQuiz
- 05Métodos y variables estáticosRetoQuiz
- 06Funciones y clases amigasRetoQuiz
- 07Resumen - Gestor de cuentas bancariasReto
Encapsulamiento
6 lecciones651- 01Especificadores de acceso en C++RetoQuiz
- 02Especificadores de acceso en profundidadRetoQuiz
- 03Ocultamiento de informaciónRetoQuiz
- 04Struct vs ClassRetoQuiz
- 05Clases anidadas e internasRetoQuiz
- 06Resumen - Sistema de registros de estudiantesRetoQuiz
Sobrecarga de operadores
8 lecciones863- 01Introducción a la sobrecarga de operadoresRetoQuiz
- 02Sobrecarga de operadores aritméticosRetoQuiz
- 03Sobrecarga de operadores de comparaciónRetoQuiz
- 04Operadores de flujo (Stream)RetoQuiz
- 05Sobrecarga del operador de asignaciónRetoQuiz
- 06Sobrecarga de los operadores [] y ()RetoQuiz
- 07Operadores de conversión de tiposRetoQuiz
- 08Resumen - Clase MatrixReto
Herencia
8 lecciones862- 01Herencia básicaRetoQuiz
- 02Niveles de acceso en la herenciaRetoQuiz
- 03Orden de llamada de Ctor y DtorRetoQuiz
- 04Sobrescritura de métodosRetoQuiz
- 05Funciones virtuales y VTableRetoQuiz
- 06Herencia múltipleRetoQuiz
- 07Herencia virtualRetoQuiz
- 08Resumen - Jerarquía de empleadosReto
Polimorfismo
8 lecciones860- 01Polimorfismo: Compilación vs. Tiempo de ejecuciónRetoQuiz
- 02Sobrecarga de funcionesRetoQuiz
- 03Funciones virtuales revisadasRetoQuiz
- 04Funciones virtuales purasRetoQuiz
- 05Clases abstractasRetoQuiz
- 06Diseño de interfaces en C++RetoQuiz
- 07Dynamic Casting y RTTIRetoQuiz
- 08Resumen: Calculadora de figurasReto
Plantillas
6 lecciones546- 01Plantillas de funcionesRetoQuiz
- 02Plantillas de clasesRetoQuiz
- 03Especialización de plantillasRetoQuiz
- 04Plantillas variádicasRetoQuiz
- 05Conceptos básicos de SFINAE y Type TraitsQuiz
- 06Resumen - Contenedor genéricoReto
Visión general de la STL
6 lecciones646- 01Visión general y filosofía de la STLRetoQuiz
- 02Contenedores de la STLRetoQuiz
- 03IteradoresRetoQuiz
- 04Algoritmos de la STLRetoQuiz
- 05Funtores y expresiones lambdaRetoQuiz
- 06Resumen - Frecuencia de palabrasReto
Conceptos avanzados de POO
7 lecciones763- 01Composición vs. HerenciaRetoQuiz
- 02Mixins mediante CRTPRetoQuiz
- 03Idioma PimplRetoQuiz
- 04Borrado de tiposRetoQuiz
- 05Enum Classes y tipado fuerteRetoQuiz
- 06Manejo de excepciones en POORetoQuiz
- 07Jerarquías de excepciones personalizadasRetoQuiz
Características de C++ moderno
7 lecciones764- 01Semántica de movimiento y RvaluesRetoQuiz
- 02Reenvío perfectoRetoQuiz
- 03Expresiones Lambda en profundidadRetoQuiz
- 04std::function y std::bindRetoQuiz
- 05constexpr y constevalRetoQuiz
- 06Bindings estructuradosRetoQuiz
- 07optional, variant, anyRetoQuiz
Patrones de diseño - Parte 1
6 lecciones655- 01Introducción a los patrones de diseñoRetoQuiz
- 02Patrón SingletonRetoQuiz
- 03Factory y Abstract FactoryRetoQuiz
- 04Patrón BuilderRetoQuiz
- 05Patrón ObserverRetoQuiz
- 06Patrón StrategyRetoQuiz
Patrones de diseño - Parte 2
7 lecciones764- 01Patrón CommandRetoQuiz
- 02Patrón AdapterRetoQuiz
- 03Patrón DecoratorRetoQuiz
- 04Patrón Template MethodRetoQuiz
- 05Patrón StateRetoQuiz
- 06Patrón CompositeRetoQuiz
- 07RAII como patrónRetoQuiz
Desafíos finales
2 lecciones2- 01Plataforma de E-LearningReto
- 02Sistema bancarioReto
Por qué aprender C++ con Coddy
- Escribe y ejecuta código C++ real en el navegador. Sin instalar compiladores ni configurar toolchains. Cada lección compila tu C++ del lado del servidor y te muestra la salida al instante.
- C++ moderno: clases y objetos, herencia, funciones virtuales, referencias y punteros, templates, la STL. Los patrones de C++ que realmente se usan hoy.
- Las pistas con IA te ayudan a leer y corregir los errores del compilador de C++ —sobre todo los famosos por ser crípticos— para que el lenguaje se sienta accesible y no un castigo.
- Certificado gratis de C++ al terminar. Útil para puestos de systems, game-dev y embedded, donde el dominio de C++ se da por sentado.
Preguntas frecuentes sobre aprender C++
¿C++ es fácil de aprender?
C++ tiene fama de ser uno de los lenguajes más difíciles de aprender: punteros, manejo manual de memoria y un conjunto enorme de características que se va sumando. La buena noticia es que no necesitas todo eso desde el primer día. El curso arranca con lo esencial y práctico (variables, control de flujo, funciones, clases) y deja los punteros y los templates para cuando ya tengas los fundamentos firmes.
¿Qué conviene aprender primero, C o C++?
Ambos enseñan a pensar a bajo nivel, pero llevan por caminos distintos. C es más pequeño y te obliga a lidiar con la memoria y los punteros desde el inicio. C++ es más grande, pero permite una curva más gradual a través de clases y la STL antes de tener que manejar la memoria a mano. Para desarrollo de aplicaciones o videojuegos, empieza con C++; para trabajo embebido o de sistemas operativos, C está más cerca del hardware.
¿Cuánto se tarda en aprender C++?
Los fundamentos de C++ —sintaxis, control de flujo, funciones, clases simples— toman de tres a seis semanas con práctica diaria. Manejarte con soltura con punteros, templates y la STL suele llevar de tres a seis meses. El dominio (modismos del C++ moderno, trabajo de performance, bases de código complejas) es un camino de varios años.
¿Puedo aprender C++ online y gratis?
Sí. El curso interactivo de C++ es gratuito — lecciones, ejercicios de código, cuestionarios y un certificado. El editor corre en tu navegador, así que no necesitas instalar GCC, Clang o Visual Studio localmente para empezar a escribir C++.
¿Necesito instalar un compilador para tomar este curso de C++?
No. Cada ejercicio de C++ se compila del lado del servidor en un entorno aislado y muestra la salida junto a tu código. Sin toolchain, sin makefile, sin IDE.
¿Recibo un certificado de C++ al terminar el curso?
Sí. Al terminar el curso de C++ obtienes un certificado de finalización gratuito. Una prueba verificable que puedes sumar a tu CV o LinkedIn junto con el código de tu portafolio.