Librería Portfolio Librería Portfolio

Búsqueda avanzada

TIENE EN SU CESTA DE LA COMPRA

0 productos

en total 0,00 €

C++. DE LOS FUNDAMENTOS DEL LENGUAJE A LAS APLICACIONES
Título:
C++. DE LOS FUNDAMENTOS DEL LENGUAJE A LAS APLICACIONES
Subtítulo:
Autor:
GUERIN, B
Editorial:
EDICIONES ENI
Año de edición:
2022
ISBN:
978-2-409-03385-8
Páginas:
2022
29,90 €

 

Sinopsis

Este libro está dirigido a cualquier desarrollador que desee aprender el lenguaje C ++, como parte de sus estudios o para consolidar su experiencia profesional.

El primer capítulo presenta los aspectos básicos de la sintaxis del lenguaje, así como la organización de los programas. El siguiente capítulo es una transición a C++. Explica los conceptos clave para crear sus primeras aplicaciones: estructuras, punteros, librería estándar, etc. El tercer capítulo detalla la programación orientada a objetos y los mecanismos específicos del lenguaje (herencia, modelos de clase, etc.). Luego viene el estudio de la STL (Standard Template Library), presentada a través de sus mecanismos más importantes: cadenas, estructuras de datos y rutas de recolección. Las evoluciones modernas de C++ como las expresiones lambda, los smart-pointers y la inferencia de tipos, también se estudian de manera previa a la librería boost. Un capítulo abre C++ en a universos, como el entorno gestionado.NET C++ CLI y las aplicaciones Win32.

Como ejemplo ilustrativo de las posibilidades de C ++ para crear todo tipo de aplicaciones, el autor ofrece un ejemplo completo de una hoja de cálculo gráfica, un intérprete de lenguaje tiny-Lisp o un programa de compresión de archivos.

El libro termina con un capítulo dedicado a la optimización, métodos de diseño orientados a objetos UML y design patterns, seguido de un capítulo que aplica algoritmos esenciales en C++ que tratan del reconocimiento de patrones, la búsqueda en un grafo y la compresión de datos.
Índice

Prólogo
1. Objetivos de este libro
2. Trabajos prácticos
Introducción
1. Nociones clave
1.1 Principales características del lenguaje C++
1.2 Programación orientada a objetos
1.3 Entorno de desarrollo y archivo makefile
1.3.1 Elección de un EDI
1.3.2 Construcción de un archivo makefile
1.4 Organización de un programa C++
1.4.1 Código fuente
1.4.2 Módulos de objeto
1.4.3 Librerías
1.4.4 Ejecutable
1.5 Preprocesador
1.6 Elección de un compilador
1.7 Enlazador
2. Bases de la programación C++
2.1 Declaración de variables
2.1.1 Utilidad de las variables
2.1.2 Ámbito de las variables
2.1.3 Sintaxis de declaración
2.1.4 Tipos de datos
2.2 Instrucciones de pruebas y operadores
2.2.1 Instrucciones de prueba
2.2.2 Operadores
2.3 Instrucciones de bucle
2.3.1 El bucle for
2.3.2 El bucle while
2.3.3 El bucle do
2.3.4 Las instrucciones de salto
2.4 Arrays
2.5 Funciones y prototipos
2.5.1 Declaración de una función
2.5.2 Funciones y procedimientos
2.5.3 Llamada de las funciones
2.5.4 Gestión de las variables locales
2.5.5 Definición de funciones homónimas (polimorfismo)
2.5.6 Funciones con número variable de argumentos
2.5.7 Asignación de valores por defecto a los argumentos
2.5.8 Funciones en línea
2.5.9 Funciones externas de tipo C
2.5.10 Funciones recursivas
2.5.11 La función main()
2.6 Punteros
2.6.1 Punteros de variables
2.6.2 Punteros y arrays
2.6.3 Asignación de memoria
2.6.4 Aritmética de los punteros
2.6.5 Punteros de punteros
2.6.6 Punteros de funciones
2.7 Referencias
2.8 Constantes
2.8.1 Constantes simbólicas
2.8.2 El tipo void
2.8.3 Los alias de tipo: typedef
2.8.4 Constantes y enumeraciones
3. Excepciones
3.1 Los enfoques de bajo nivel
3.1.1 Banderas e interrupciones
3.1.2 Tratamiento de los errores en lenguaje C
3.2 Las excepciones son más seguras que los errores
3.3 Propagación explícita
3.4 Tipos de excepciones personalizadas
3.4.1 Definición de clases de excepción
3.4.2 Instanciación de clases
3.4.3 Clases de excepción derivadas
3.5 Manejo de una excepción y reactivación
3.6 Excepciones no interceptadas
3.7 Adquisición de recursos
4. Trabajos prácticos
4.1 Control del intérprete tiny-lisp
4.1.1 Estructura de la solución
4.1.2 La carpeta config
4.1.3 La carpeta framework
4.1.4 La carpeta jsonlib
4.1.5 La carpeta language
4.1.6 La carpeta modules
4.1.7 La carpeta scriptboxes
4.2 Utilizar el intérprete en modo interactivo
4.3 Código del bucle principal
4.3.1 La función main()
4.3.2 El bucle eval_loop()
4.3.3 Utilizar el depurador
4.4 Utilizar el intérprete desde tinylisplab
De C a C++
1. Programación estructurada
1.1 Estructuras
1.1.1 Constitución de una estructura
1.1.2 Instanciación de estructuras
1.1.3 Instanciación con el operador new
1.1.4 Punteros y estructuras
1.1.5 Organización de la programación
1.2 Uniones
1.3 Copia de estructuras
1.4 Creación de alias de tipos de estructuras
1.5 Estructuras y funciones
1.5.1 Pasar una estructura por valor como argumento
1.5.2 Pasar una estructura por referencia como argumento
1.5.3 Pasar una estructura por dirección como argumento
1.5.4 De la programación funcional a la programación orientada a objetos
2. Gestión de la memoria
2.1 Alineación de los datos
2.2 Asignación de memoria interprocesos
3. La librería estándar de C
3.1 Las funciones comunes del lenguaje C
3.2 Cadenas
3.3 Archivos
4. Trabajos prácticos
4.1 Carga de scripts en tiny-lisp
4.2 Eliminar los errores relacionados con la librería no segura
Programación orientada a objetos
1. Clases e instancias
1.1 Definición de clase
1.1.1 Los modificadores de acceso
1.1.2 Organización de la programación de las clases
1.2 Instanciación
1.3 Constructor y destructor
1.3.1 Constructor
1.3.2 El puntero this
1.3.3 Destructor
1.3.4 Destructor virtual
1.4 Asignación dinámica
1.5 Constructor de copia
2. Herencia
2.1 Derivación de clase (herencia)
2.1.1 Ejemplo de derivación de clases
2.1.2 Herencia pública, protegida y privada
2.1.3 Llamada de los constructores
2.2 Polimorfismo
2.2.1 Métodos polimorfos
2.2.2 Conversiones de objetos
2.3 Métodos virtuales y métodos virtuales puros
2.4 Herencia múltiple
2.4.1 Notaciones particulares
2.4.2 Consecuencias en la programación
3. Otros aspectos de la POO
3.1 Conversión dinámica
3.1.1 Conversiones desde otro tipo
3.1.2 Operadores de conversión
3.1.3 Conversiones entre clases derivadas
3.2 Campos y métodos estáticos
3.2.1 Campos estáticos
3.2.2 Métodos estáticos
3.3 Sobrecarga de operadores
3.3.1 Sintaxis
3.3.2 Sobrecarga del operador de indexación
3.3.3 Sobrecarga del operador de asignación
3.3.4 Sobrecarga del operador de conversión
3.4 Funciones amigas
3.5 Direccionamiento relativo y punteros de miembros
3.5.1 Notaciones
3.5.2 Construcción de un middleware orientado a objetos
3.6 Programación genérica
3.6.1 Modelos de funciones
3.6.2 Modelos de clases
4. Trabajos prácticos
4.1 Utilización de la herencia de clases en el intérprete tiny-lisp
4.2 Punteros de miembros para las funciones callback
La librería Standard Template Library
1. Introducción
2. Organización de los programas
2.1 Espacios de nombres
2.1.1 Utilización completa de un espacio de nombres
2.1.2 Espacio de nombres repartido entre diferentes archivos
2.1.3 Relación entre clase y espacio de nombres
2.1.4 Declaración de subespacios de nombres
2.2 Presentación de la STL
3. Flujo C++ (entradas-salidas)
3.1 Generalidades
3.2 Flujos integrados
3.3 Estado de un flujo
3.4 Formato
3.5 Flujo de archivos
3.6 Flujo de cadenas
3.7 Argumentos locales
4. Clase string para la representación de las cadenas de caracteres
4.1 Representación de las cadenas en la STL
4.2 Forma de utilización de la clase string
4.2.1 Funciones de base
4.2.2 Integración en el lenguaje C++
4.2.3 Funciones específicas de las cadenas
5. Contenedores dinámicos
5.1 Contenedores
5.1.1 Inserción de elementos y recorrido
5.1.2 Iteradores
5.1.3 Operaciones aplicables a un vector
5.2 Secuencias
5.2.1 Contenedores estándar
5.2.2 Secuencias
5.2.3 Adaptadores de secuencias
5.2.4 Contenedores asociativos
5.3 Algoritmos
5.3.1 Operaciones de secuencia sin modificación
5.3.2 Operaciones de secuencia con modificación
5.3.3 Secuencias ordenadas
5.3.4 Algoritmos de definición
5.3.5 Mínimo y máximo
5.4 Cálculo numérico
5.4.1 Límites de los formatos ordinarios
5.4.2 Funciones de la librería
5.4.3 Funciones de la librería estándar y clase valarray
5.5 Las aportaciones del C++ moderno
5.5.1 Las expresiones lambda
5.5.2 La inferencia de tipo
5.5.3 Nuevos tipos de bucles
5.5.4 Punteros inteligentes
5.6 Introducción a la librería boost
5.6.1 Instalación de la librería
5.6.2 Un primer ejemplo con boost
5.6.3 Dominios de aplicación
6. Trabajos prácticos
6.1 La clase Variant
6.2 El método to_string
6.3 La traducción JSON
6.3.1 El método estático to_json_string()
6.3.2 El método estático from_json_string()
Los universos de C++
1. El entorno Windows
1.1 Los programas Win32
1.2 Elección del modo de compilación
1.3 Funcionamiento de las aplicaciones de ventana Win32
1.3.1 Creación de un proyecto de aplicación de ventana
1.3.2 Los tipos de datos Win32
1.3.3 Los handles y los mensajes
1.3.4 El bucle de mensajes
1.3.5 Los archivos de recursos
2. El entorno .NET
2.1 Le código gestionado y la máquina virtual CLR
2.2 Las adaptaciones del lenguaje C++ CLI
2.2.1 La norma CTS
2.2.2 La clase System::String
2.2.3 El recolector de basura
2.2.4 Construcción y destrucción de objetos
2.2.5 La referencia de seguimiento % y el handle ^
2.2.6 El puntero interno y las zonas ancladas
2.2.7 Los arrays y las funciones con número variable de argumentos
2.2.8 Las propiedades
2.2.9 Los delegados y los eventos
2.2.10 Los métodos virtuales
2.2.11 Las clases abstractas y las interfaces
2.3 El framework .NET
2.3.1 Las referencias de ensamblados
2.3.2 El espacio de nombres System::IO
2.3.3 El espacio de nombres System::Xml
2.3.4 El espacio de nombres System::Data
2.3.5 El espacio de nombres System::Collections
2.3.6 El espacio de nombres System::Collections::Generic
2.3.7 El ámbito de la STL para C++ CLI
2.4 Las relaciones con el resto de lenguajes: C#
3. Trabajos prácticos
3.1 Realizar una aplicación de dibujo Win32
3.2 Una aplicación en C++ para .NET: le hoja de cálculo InCell
3.2.1 Arquitectura de la hoja de cálculo
3.2.2 La hoja de cálculo
3.2.3 El programador del cálculo
3.2.4 Zoom sobre el evaluador
3.2.5 La interfaz gráfica
3.3 Un módulo de gestión de datos para tiny-lisp
3.3.1 Creación de listas persistentes db_create
3.3.2 Acceso a las listas persistentes db_use
3.3.3 Inserción de items db_insert
3.3.4 Registro de las listas persistentes db_save
3.3.5 Selección de ítems en las listas persistantes db_select
Programas C++ eficaces
1. Mejorar sus programas
1.1 Olvidar los actos reflejos del lenguaje C
1.2 Gestión de la memoria
1.3 Diseñar clases con cuidado
1.4 Ver más claramente entre las posibilidades de herencia
1.5 Analizar la ejecución de un programa C++
2. El diseño orientado a objetos (DOO)
2.1 Relación entre la POO y el DOO
2.1.1 El enfoque inicial de C++
2.1.2 UML y C++
2.2 Los design patterns
3. Trabajos prácticos
3.1 El objetivo del programa
3.2 El diagrama de clases
3.3 La fábrica SimpleFactory
3.4 La inyección de dependencias
Algoritmos aplicados a C++