Aprende C++
Un curso de C++ online, interactivo y gratis. Escribes C++ en cada lección, con pistas de IA cuando el compiler te grita, y un certificado gratis al terminar.
223,987+ 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
Cursos de C++
Cursos prácticos de C++, gratis para empezar en tu navegador.
Desafíos para principiantes - Practica conceptos básicos
PopularPon a prueba tus conocimientos básicos de programación e intenta resolver estos desafíos; usa cualquier lenguaje que quieras. ¡Feliz programación!
Certificado al completar
- 20
- 20
Problemas de programación
PopularPon a prueba tus habilidades de resolución de problemas de programación con los ejercicios de diferentes niveles de dificultad de este curso. Diseñado para programadores con conocimientos previos de la sintaxis básica en cualquier lenguaje de programación.
Certificado al completar
- 32
- 31
Problemas de programación: Volumen 2
Pon a prueba tus habilidades de resolución de problemas de programación con los ejercicios de diferentes niveles de dificultad de este curso. Diseñado para programadores con conocimientos previos de la sintaxis básica en cualquier lenguaje de programación, este curso es una extensión del primer volumen de Problemas de programación.
Certificado al completar
- 25
- 24
Pila - Serie de Estructuras de Datos #1
En este curso, aprenderás sobre la estructura de datos Pila, crearás una Pila desde cero usando tu lenguaje preferido y practicarás desafíos de programación con ella.
- 13
- 6
- 1
Heaps y Colas de Prioridad - Serie de Estructuras de Datos #7
NuevoEn este curso, aprenderás sobre la estructura de datos Heap (la base de las colas de prioridad), crearás un MinHeap desde cero usando tu lenguaje preferido y practicarás desafíos de programación con él.
Certificado al completar
- 14
- 6
- 1
Bootcamp de patrones de estrellas
Pon a prueba tus habilidades de resolución de problemas de programación para aprender a imprimir patrones de estrellas que van desde lo simple hasta lo complejo, involucrando diferentes niveles de bucles anidados, sentencias condicionales y cálculos matemáticos.
- 30
- 28
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.