Curso de C++ avanzado
Para quien ya domina lo básico: las técnicas que se usan en proyectos reales. En DMarlon Studio, C++ es el lenguaje de las aplicaciones de escritorio nativas con FLTK y de la consola: diseña la ventana y el estudio genera el C++.
Empezar- 1Clases y métodos constCree sus propias clases en C++: miembros, constructor y métodos const, con una cuenta bancaria que admite ingresos y reintegros.Lección 1
- 2Encapsulación e inicializaciónProteja los datos de una clase de C++ con private y getters, e inicialice sus miembros con una lista: un termostato que nunca sale de su rango.Lección 2
- 3Herencia y funciones virtualesHerede de una clase en C++ y sustituya sus métodos con virtual y override; descubra también el recorte de objetos, con una nómina de empleados.Lección 3
- 4Clases abstractas y polimorfismoDefina una interfaz con funciones virtuales puras en C++ y recorra objetos distintos con punteros a la base: métodos de pago y sus comisiones.Lección 4
- 5Sobrecarga de operadoresDé a sus clases de C++ operadores propios (+, *, +=, ==, < y <<) con un tipo Money que guarda céntimos para no perder ni un euro al sumar.Lección 5
- 6RAII y destructoresLibere recursos sin olvidos con RAII y destructores en C++: una conexión que se cierra sola y una transacción que se deshace si hay una excepción.Lección 6
- 7unique_ptr y shared_ptrUse los punteros inteligentes unique_ptr y shared_ptr de C++ para que la memoria se libere sola: canciones con uno o con varios dueños.Lección 7
- 8Copiar y moverDistinga entre copiar y mover en C++: la regla de los cinco, std::move y noexcept, con una imagen que gestiona su propia memoria.Lección 8
- 9Plantillas de funcionesEscriba una sola función de C++ para muchos tipos con template: el mayor de una lista de números, palabras o versiones, y un límite genérico.Lección 9
- 10Plantillas de clasesCree un búfer circular genérico con una plantilla de clase de C++, con el tipo y el tamaño como parámetros: lecturas de un sensor y archivos recientes.Lección 10
- 11Lambdas y capturasEscriba funciones en el sitio con las lambdas de C++: ordene tareas, capture variables por valor o por referencia y use mutable y auto.Lección 11
- 12Algoritmos de la STLProcese datos en C++ con transform, accumulate, count_if, find_if y remove_if con erase: las ventas de una tienda sin escribir bucles.Lección 12
- 13IteradoresRecorra contenedores de C++ con iteradores: begin, end, rbegin, next, distance y erase en un std::list, con una ruta y una lista de reproducción.Lección 13
- 14set, unordered_map y dequeElija el contenedor de C++ adecuado: std::set para valores únicos ordenados, std::unordered_map para contar visitas y std::deque para una cola.Lección 14
- 15optional, variant y visitRepresente en C++17 valores que pueden faltar con std::optional y valores de varios tipos con std::variant y std::visit: puertos y celdas.Lección 15
- 16Espacios de nombres y enum classOrganice el código de C++ con namespaces, alias y using, y use enum class para estados con nombre y seguros: los pasos de un pedido.Lección 16
- 17Jerarquías de excepcionesCree sus propias excepciones en C++ derivando de std::runtime_error, con datos extra, y captúrelas de la más concreta a la más general.Lección 17
- 18std::function y callbacksConstruya un sistema de eventos en C++ con std::function: registre lambdas, funciones y métodos como callbacks y llámelos al emitir cada evento.Lección 18
- 19constexpr y static_assertCalcule al compilar con constexpr, compruebe condiciones con static_assert y elija código con if constexpr: tamaños, proporciones y tablas en C++.Lección 19
- 20Proyecto: editor de formasProyecto final del curso avanzado de C++: un editor de formas con clases, polimorfismo, unique_ptr y algoritmos de la STL, listo para F9 en DMarlon Studio.Lección 20