🎃 Grandes descuentos en libros en línea, eformaciones y vídeos*. Código CALABAZA30. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. C++ - De los fundamentos del lenguaje a las aplicaciones

C++ De los fundamentos del lenguaje a las aplicaciones

Información adicional

  • 5% de descuento en todos los libros
  • Envío gratis a partir de 25 € de compra
  • Versión online gratis por un año

Características

  • Encuadernación rústica - 17 x 21 cm
  • ISBN: 978-2-409-03385-8
  • EAN: 9782409033858
  • Ref. ENI: RIT3CPP

Información adicional

  • 5% de descuento en todos los libros
  • Versión online digital, no descargable
  • Consultable en línea durante 10 años inmediatamente después de la validación del pago.

Características

  • HTML
  • ISBN: 978-2-409-03386-5
  • EAN: 9782409033865
  • Ref. ENI: LNRIT3CPP
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...
Consultar extractos del libro Extracto del libro
  • Nivel Medio a Experto
  • Número de páginas 480 páginas
  • Publicación diciembre 2021
  • Nivel Medio a Experto
  • Publicación diciembre 2021
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.

Descargas

Prólogo
  1. Objetivos de este libro
  2. Trabajos prácticos
Introducción
  1. Nociones clave
    1. 1. Principales características del lenguajeC++
    2. 2. Programación orientada a objetos
    3. 3. Entorno de desarrollo y archivo makefile
      1. a. Elección de un EDI
      2. b. Construcción de un archivo makefile
    4. 4. Organización de un programa C++
      1. a. Código fuente
      2. b. Módulos de objeto
      3. c. Librerías
      4. d. Ejecutable
    5. 5. Preprocesador
    6. 6. Elección de un compilador
    7. 7. Enlazador
  2. Bases de la programación C++
    1. 1. Declaración de variables
      1. a. Utilidad de las variables
      2. b. Ámbito de las variables
      3. c. Sintaxis de declaración
      4. d. Tipos de datos
    2. 2. Instrucciones de pruebas y operadores
      1. a. Instrucciones de prueba
      2. b. Operadores
    3. 3. Instrucciones de bucle
      1. a. El bucle for
      2. b. El bucle while
      3. c. El bucle do
      4. d. Las instrucciones de salto
    4. 4. Arrays
    5. 5. Funciones y prototipos
      1. a. Declaración de una función
      2. b. Funciones y procedimientos
      3. c. Llamada de las funciones
      4. d. Gestión de las variables locales
      5. e. Definición de funciones homónimas(polimorfismo)
      6. f. Funciones con número variable de argumentos
      7. g. Asignación de valores por defecto a los argumentos
      8. h. Funciones en línea
      9. i. Funciones externas de tipo C
      10. j. Funciones recursivas
      11. k. La función main()
    6. 6. Punteros
      1. a. Punteros de variables
      2. b. Punteros y arrays
      3. c. Asignación de memoria
      4. d. Aritmética de los punteros
      5. e. Punteros de punteros
      6. f. Punteros de funciones
    7. 7. Referencias
    8. 8. Constantes
      1. a. Constantes simbólicas
      2. b. El tipo void
      3. c. Los alias de tipo: typedef
      4. d. Constantes y enumeraciones
  3. Excepciones
    1. 1. Los enfoques de bajo nivel
      1. a. Banderas e interrupciones
      2. b. Tratamiento de los errores en lenguaje C
    2. 2. Las excepciones son más seguras que los errores
    3. 3. Propagación explícita
    4. 4. Tipos de excepciones personalizadas
      1. a. Definición de clases de excepción
      2. b. Instanciación de clases
      3. c. Clases de excepción derivadas
    5. 5. Manejo de una excepción y reactivación
    6. 6. Excepciones no interceptadas
    7. 7. Adquisición de recursos
  4. Trabajos prácticos
    1. 1. Control del intérprete tiny-lisp
      1. a. Estructura de la solución
      2. b. La carpeta config
      3. c. La carpeta framework
      4. d. La carpeta jsonlib
      5. e. La carpeta language
      6. f. La carpeta modules
      7. g. La carpeta scriptboxes
    2. 2. Utilizar el intérprete en modo interactivo
    3. 3. Código del bucle principal
      1. a. La función main()
      2. b. El bucle eval_loop()
      3. c. Utilizar el depurador
    4. 4. Utilizar el intérprete desde tinylisplab
De C a C++
  1. Programación estructurada
    1. 1. Estructuras
      1. a. Constitución de una estructura
      2. b. Instanciación de estructuras
      3. c. Instanciación con el operador new
      4. d. Punteros y estructuras
      5. e. Organización de la programación
    2. 2. Uniones
    3. 3. Copia de estructuras
    4. 4. Creación de alias de tipos de estructuras
    5. 5. Estructuras y funciones
      1. a. Pasar una estructura por valor como argumento
      2. b. Pasar una estructura por referencia como argumento
      3. c. Pasar una estructura por dirección como argumento
      4. d. De la programación funcional a la programaciónorientada a objetos
  2. Gestión de la memoria
    1. 1. Alineación de los datos
    2. 2. Asignación de memoria interprocesos
  3. La librería estándar de C
    1. 1. Las funciones comunes del lenguaje C <stdlib.h></stdlib.h>
    2. 2. Cadenas<string.h></string.h>
    3. 3. Archivos<stdio.h></stdio.h>
  4. Trabajos prácticos
    1. 1. Carga de scripts en tiny-lisp
    2. 2. Eliminar los errores relacionados con la libreríano segura
Programación orientada a objetos
  1. Clases e instancias
    1. 1. Definición de clase
      1. a. Los modificadores de acceso
      2. b. Organización de la programaciónde las clases
    2. 2. Instanciación
    3. 3. Constructor y destructor
      1. a. Constructor
      2. b. El puntero this
      3. c. Destructor
      4. d. Destructor virtual
    4. 4. Asignación dinámica
    5. 5. Constructor de copia
  2. Herencia
    1. 1. Derivación de clase (herencia)
      1. a. Ejemplo de derivación de clases
      2. b. Herencia pública, protegida y privada
      3. c. Llamada de los constructores
    2. 2. Polimorfismo
      1. a. Métodos polimorfos
      2. b. Conversiones de objetos
    3. 3. Métodos virtuales y métodos virtualespuros
    4. 4. Herencia múltiple
      1. a. Notaciones particulares
      2. b. Consecuencias en la programación
  3. Otros aspectos de la POO
    1. 1. Conversión dinámica
      1. a. Conversiones desde otro tipo
      2. b. Operadores de conversión
      3. c. Conversiones entre clases derivadas
    2. 2. Campos y métodos estáticos
      1. a. Campos estáticos
      2. b. Métodos estáticos
    3. 3. Sobrecarga de operadores
      1. a. Sintaxis
      2. b. Sobrecarga del operador de indexación
      3. c. Sobrecarga del operador de asignación
      4. d. Sobrecarga del operador de conversión
    4. 4. Funciones amigas
    5. 5. Direccionamiento relativo y punteros de miembros
      1. a. Notaciones
      2. b. Construcción de un middleware orientado aobjetos
    6. 6. Programación genérica
      1. a. Modelos de funciones
      2. b. Modelos de clases
  4. Trabajos prácticos
    1. 1. Utilización de la herencia de clases en elintérprete tiny-lisp
    2. 2. Punteros de miembros para las funciones callback
La librería Standard Template Library
  1. Introducción
  2. Organización de los programas
    1. 1. Espacios de nombres
      1. a. Utilización completa de un espacio de nombres
      2. b. Espacio de nombres repartido entre diferentes archivos
      3. c. Relación entre clase y espacio de nombres
      4. d. Declaración de subespacios de nombres
    2. 2. Presentación de la STL
  3. Flujo C++ (entradas-salidas)
    1. 1. Generalidades
    2. 2. Flujos integrados
    3. 3. Estado de un flujo
    4. 4. Formato
    5. 5. Flujo de archivos
    6. 6. Flujo de cadenas
    7. 7. Argumentos locales
  4. Clase string para la representación de las cadenas de caracteres
    1. 1. Representación de las cadenas en la STL
    2. 2. Forma de utilización de la clase string
      1. a. Funciones de base
      2. b. Integración en el lenguaje C++
      3. c. Funciones específicas de las cadenas
  5. Contenedores dinámicos
    1. 1. Contenedores
      1. a. Inserción de elementos y recorrido
      2. b. Iteradores
      3. c. Operaciones aplicables a un vector
    2. 2. Secuencias
      1. a. Contenedores estándar
      2. b. Secuencias
      3. c. Adaptadores de secuencias
      4. d. Contenedores asociativos
    3. 3. Algoritmos
      1. a. Operaciones de secuencia sin modificación
      2. b. Operaciones de secuencia con modificación
      3. c. Secuencias ordenadas
      4. d. Algoritmos de definición
      5. e. Mínimo y máximo
    4. 4. Cálculo numérico
      1. a. Límites de los formatos ordinarios
      2. b. Funciones de la librería
      3. c. Funciones de la librería estándary clase valarray
    5. 5. Las aportaciones del C++ moderno
      1. a. Las expresiones lambda
      2. b. La inferencia de tipo
      3. c. Nuevos tipos de bucles
      4. d. Punteros inteligentes
    6. 6. Introducción a la librería boost
      1. a. Instalación de la librería
      2. b. Un primer ejemplo con boost
      3. c. Dominios de aplicación
  6. Trabajos prácticos
    1. 1. La clase Variant
    2. 2. El método to_string
    3. 3. La traducción JSON
      1. a. El método estático to_json_string()
      2. b. El método estático from_json_string()
Los universos de C++
  1. El entorno Windows
    1. 1. Los programas Win32
    2. 2. Elección del modo de compilación
    3. 3. Funcionamiento de las aplicaciones de ventana Win32
      1. a. Creación de un proyecto de aplicaciónde ventana
      2. b. Los tipos de datos Win32
      3. c. Los handles y los mensajes
      4. d. El bucle de mensajes
      5. e. Los archivos de recursos
  2. El entorno .NET
    1. 1. Le código gestionado y la máquinavirtual CLR
    2. 2. Las adaptaciones del lenguaje C++ CLI
      1. a. La norma CTS
      2. b. La clase System::String
      3. c. El recolector de basura
      4. d. Construcción y destrucción de objetos
      5. e. La referencia de seguimiento % y el handle ^
      6. f. El puntero interno y las zonas ancladas
      7. g. Los arrays y las funciones con número variablede argumentos
      8. h. Las propiedades
      9. i. Los delegados y los eventos
      10. j. Los métodos virtuales
      11. k. Las clases abstractas y las interfaces
    3. 3. El framework .NET
      1. a. Las referencias de ensamblados
      2. b. El espacio de nombres System::IO
      3. c. El espacio de nombres System::Xml
      4. d. El espacio de nombres System::Data
      5. e. El espacio de nombres System::Collections
      6. f. El espacio de nombres System::Collections::Generic
      7. g. El ámbito de la STL para C++ CLI
    4. 4. Las relaciones con el resto de lenguajes: C#
  3. Trabajos prácticos
    1. 1. Realizar una aplicación de dibujo Win32
    2. 2. Una aplicación en C++ para.NET: le hoja de cálculo InCell
      1. a. Arquitectura de la hoja de cálculo
      2. b. La hoja de cálculo
      3. c. El programador del cálculo
      4. d. Zoom sobre el evaluador
      5. e. La interfaz gráfica
    3. 3. Un módulo de gestión de datos paratiny-lisp
      1. a. Creación de listas persistentes db_create
      2. b. Acceso a las listas persistentes db_use
      3. c. Inserción de items db_insert
      4. d. Registro de las listas persistentes db_save
      5. e. Selección de ítems en las listaspersistantes db_select
Programas C++ eficaces
  1. Mejorar sus programas
    1. 1. Olvidar los actos reflejos del lenguaje C
    2. 2. Gestión de la memoria
    3. 3. Diseñar clases con cuidado
    4. 4. Ver más claramente entre las posibilidadesde herencia
    5. 5. Analizar la ejecución de un programa C++
  2. El diseño orientado a objetos (DOO)
    1. 1. Relación entre la POO y el DOO
      1. a. El enfoque inicial de C++
      2. b. UML y C++
    2. 2. Los design patterns
  3. Trabajos prácticos
    1. 1. El objetivo del programa
    2. 2. El diagrama de clases
    3. 3. La fábrica SimpleFactory
    4. 4. La inyección de dependencias
Algoritmos aplicados a C++
  1. Introducción
  2. Reconocimiento de patrones textuales
    1. 1. Enfoque directo
    2. 2. Lectura con desplazamiento: el algoritmo Boyer Moore
    3. 3. Método para los patrones auto repetitivos:el algoritmo KMP
    4. 4. Método para los patrones variables
  3. Búsqueda del camino más corto
    1. 1. Presentación de los grafos
      1. a. Incidencia y adyacencia
      2. b. Camino de un grafo
      3. c. Implementación de los grafos orientados yno orientados
    2. 2. El recorrido del grafo a lo ancho para empezar
    3. 3. El algoritmo de Dijkstra
    4. 4. Uso de un método heurístico: elalgoritmo A*
      1. a. Implementación en C++
      2. b. Ejecución
  4. Comprimir archivos
    1. 1. Enfoque por estadística: el algoritmo deHuffman
      1. a. Implementación de la codificación
      2. b. Compresión del archivo
      3. c. Descompresión
    2. 2. Enfoque por diccionario: el algoritmo LZW
      1. a. Funcionamiento del algoritmo
      2. b. Implementación del diccionario
      3. c. Dimensionamiento y gestión del diccionario
      4. d. Programa de compresión
      5. e. Programa de descompresión
Autor : Brice-Arnaud GUÉRIN

Brice-Arnaud GUÉRIN

Brice-Arnaud Guérin obtuvo su diploma de ingeniero informático en la prestigiosa escuela francesa y, en la actualidad, trabaja como director de programas en la empresa Kantar, y escribe libros para ENI desde 2023. Sus habilidades de desarrollo y su deseo de compartir sus conocimientos lo han llevado de manera natural a escribir libros sobre la gestión de proyectos y la creación de apli­caciones (C++, .NET y PHP).
Más información

Descubrir todos sus libros

  • Gestión de proyectos informáticos Desarrollo, análisis y control (4ª edición)
  • ASP.NET con C# en Visual Studio 2019 Diseño y desarrollo de aplicaciones web
  • ASP.NET con C# en Visual Studio 2017 Diseño y desarrollo de aplicaciones Web

Novedades

Ver más