C++ Moderno
C++ Moderno
Guía rápida y concisa para programadores
Sobre este libro
Este manual está pensado para programadores; gentes venidas de Java, Python, C# u otros lenguajes orientados a objetos. También por supuesto para amantes y profesionales de C/C++ que necesiten una puesta a punto o simplemente refrescar conceptos.
Este manual nació como un intento de poner orden a las distintas notas y apuntes que he ido redactando con el paso de los años. El manual contiene mucha información y muy concentrada. No es un manual de referencia.
Si necesitas refrescar conceptos, ponerte al día, aprender algo nuevo -como metaprogramación o move-semantics- ó si quieres saber las buenas prácticas más útiles, creo que este manual te será de gran ayuda.
Indice de contenidos:
C++ Moderno
Value Semantics
¿Qué es value-semantics?
Referencias
Constructor
Operaciones especiales
La regla del cero
La regla del tres
Move Semantics
¿Qué es move-semantics?
Propiedades de las expresiones
Ctor move y Assign move
Pass-by-value and move idiom
Exchange
Copy&Swap
Metaprogramación
¿Por qué plantillas?
Two-Phase translation
Tipo de retorno
Argumentos por defecto y sobrecarga
Conceptos
Parámetros no tipos
Variadic Template & Folding
Consideraciones básicas
Template parameters dentro de template parameters
Move semantics
Referencia universal con &&
Uso de std::forward
Implementación de std::foward y std::move
Pointer Semantics
Punteros
RAII
Smart Pointers
¿Cuando usar T*?
Ejemplo
Referencias circulares y weak_ptr
Polimorfismo
¿Por qué no hay un Gargabe Collector?
make_unique y make_shared
STL
Componentes
Iteradores
Adaptadores de iteradores
Ejemplo: Zipper
Algoritmos
C++17
Unpack
Limitando el alcance de la variable en if/switch
Class Template Argument Deduction
if constexpr
Buenas prácticas
Struct vs Class
Pasar argumentos
Devolver diferentes valores
Constructor por defecto
Argumentos por defecto
Bajo número de argumentos
No quites ‘const’, usa mutable
La regla del cero
The Big Five
Usa smart_pointers para indicar propiedad
Expresa las ideas directamente en código
Patrones de diseño
Los principios SOLID
Patrones de diseño
Singleton
Observer
Factory Method
Strategy
Adapter
Algoritmia
Partition Scheme
Quicksort
Quickselect
Maximum Subarray Sum
Subset sum
Edit Distance
Grafo
Graph SSSP
Topological Sort
Minimum Spanning Tree
Tabla de contenidos
- C++ Moderno
-
Value Semantics
- ¿Qué es value-semantics?
- Referencias
- Constructor
- Operaciones especiales
- La regla del cero
- La regla del tres
-
Move Semantics
- ¿Qué es move-semantics?
- Propiedades de las expresiones
- Ctor move y Assign move
- Pass-by-value and move idiom
- Exchange
- Copy&Swap
-
Metaprogramación
- ¿Por qué plantillas?
- Two-Phase translation
- Tipo de retorno
- Argumentos por defecto y sobrecarga
- Conceptos
- Parámetros no tipos
- Variadic Template & Folding
- Consideraciones básicas
- Template parameters dentro de template parameters
- Move semantics
- Referencia universal con &&
- Uso de std::forward
- Implementación de std::foward y std::move
-
Pointer Semantics
- Punteros
- RAII
- Smart Pointers
- ¿Cuando usar T*?
- Ejemplo
- Referencias circulares y weak_ptr
- Polimorfismo
- ¿Por qué no hay un Gargabe Collector?
- make_unique y make_shared
-
STL
- Componentes
- Iteradores
- Adaptadores de iteradores
- Ejemplo: Zipper
- Algoritmos
-
C++17 y C++20
- Unpack
- Limitando el alcance de la variable en if/switch
- Class Template Argument Deduction
- if constexpr
- C++20: Módulos
- C++20: Rangos
-
Buenas prácticas
- Struct vs Class
- Pasar argumentos
- Devolver diferentes valores
- Constructor por defecto
- Argumentos por defecto
- Bajo número de argumentos.
- No quites ‘const’, usa mutable.
- La regla del cero
- The Big Five
- Usa smart_pointers para indicar propiedad
- Expresa las ideas directamente en código
-
Patrones de diseño
- Los principios SOLID
- Patrones de diseño
- Singleton
- Observer
- Factory Method
- Strategy
- Adapter
-
Algoritmia
- Partition Scheme
- Quicksort
- Quickselect
- Maximum Subarray Sum
- Subset sum
- Edit Distance
- Grafo
- Graph SSSP
- Topological Sort
- Minimum Spanning Tree
Leanpub incondicional, sin riesgo, 100% de felicidad garantizada
Durante los primeros 60 días de compra, puedes obtener un reembolso del 100% de cualquier compra Leanpub, en dos clics. Procesamos las restituciones manualmente, así que puede tomarse unos días en aparecer. Véase términos completos.
Gana $8 en una compra de $10 y $16 en una compra de $20
Pagamos 80% de regalías en compras de $7.99 o más y 80% de regalías menos una tarifa fija de 50 centavos en compras entre $0.99 y $7.98. Ganas $8 en una venta de $10 y $16 en una venta de $20. Entonces, si vendemos 5000 copias no reembolsadas de tu libro por $20, ganarás $80,000.
(Sí, algunos autores ya han ganado mucho más que eso en Leanpub.)
De hecho, los autores han ganadomás de 13 millones de dólares escribiendo, publicando y vendiendo en Leanpub.
Obtén más información sobre escribir en Leanpub
Actualizaciones gratis. Libre de DRM.
¡Si compras un libro Leanpub obtienes actualizaciones gratis siempre y cuando el autor actualice el libro! Varios autores usan Leanpub para publicar sus libros en progreso mientras los escriben. Todos los lectores obtienen actualizaciones gratis, independientemente de cuándo compraron el libro o cuánto pagaron (incluyendo si fue gratis).
La mayoría de los libros Leanpub se encuentran disponibles en PDF (para computadores) y EPUB (para teléfonos, tabletas, y Kindle). Los formatos que un libro incluye se muestran en la esquina superior derecha de esta página.
Finalmente, los libros Leanpub no tienen ninguna de las cosas sin sentido sobre protección de copia DRM, así que puedes leerlos fácilmente en cualquier dispositivo que se soporta.
Aprende más sobre los formatos de Leanpub y dónde puedes leerlos