¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. 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 (2ª edición)

C++ De los fundamentos del lenguaje a las aplicaciones (2ª edición)

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-04844-9
  • EAN: 9782409048449
  • Ref. ENI: RIT4CPP

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-04845-6
  • EAN: 9782409048456
  • Ref. ENI: LNRIT4CPP
Este libro está dirigido a cualquier desarrollador que desee apren- der 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++. En el siguiente capítulo, se expli­can los conceptos clave para crear sus primeras aplicaciones: ges­tión de la memoria, punteros, librería estándar, etc. El tercer...
Consultar extractos del libro Extracto del libro
  • Nivel Medio a Experto
  • Número de páginas 463 páginas
  • Publicación enero 2025
  • Nivel Medio a Experto
  • Publicación enero 2025
Este libro está dirigido a cualquier desarrollador que desee apren- der 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++. En el siguiente capítulo, se expli­can los conceptos clave para crear sus primeras aplicaciones: ges­tión de la memoria, punteros, librería estándar, etc. El tercer capí­tulo detalla la estructura de los datos, que conduce a la programación orientada a objetos y los mecanismos específicos del lenguaje (herencia, modelos de clase, etc.). A continuación, se aborda la STL (Standard Template Library), que se presenta a tra­vés de los mecanismos más importantes: cadenas, estructuras de datos y rutas de colección. Después, se estudian las evoluciones del C++ moderno como las expresiones lambda, los smart-pointers y la inferencia de tipos, para tratar seguidamente la librería boost. En otro capítulo, se abre C++ a universos como el entorno gestio­nado .NET C++ CLI y las aplicaciones Win32.

Como ilustración 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, un pro- grama de compresión de archivos e incluso una red de neuronas aplicada a un probador de cálculos.

El libro termina con un capítulo en el que se aplican los algoritmos principales de C++ relacionados con el reconocimiento de patrones, la búsqueda en un grafo y la compresión de datos.
Prólogo
  1. Objetivos de este libro
  2. Trabajos prácticos
Introducción a C++
  1. Conceptos clave
    1. 1. Principales características del lenguajeC++
    2. 2. Programación orientada a objetos
    3. 3. Entorno de desarrollo y makefile
      1. a. Elegir un EDI
      2. b. Creación de un archivo makefile
    4. 4. Organización de un programa C++
      1. a. Códigos 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. Editor de enlaces
  2. Los primeros programas
    1. 1. Los comentarios
    2. 2. 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
      5. e. Los tipos enteros
      6. f. Los tipos decimales
      7. g. El booleano
      8. h. Los caracteres y cadenas
    3. 3. Instrucciones de evaluación y operadores
      1. a. Instrucciones de evaluación
      2. b. Operadores
      3. c. Operadores booleanos
      4. d. Operadores de incremento
      5. e. Instrucciones de bucle
      6. f. El bucle while
      7. g. El bucle for
      8. h. El bucle do
      9. i. En instrucciones de desconexión
  3. Matrices
    1. 1. Declarar matrices
    2. 2. Matrices dinámicas
  4. Funciones y prototipos
    1. 1. Declaración de una función
    2. 2. Funciones y procedimientos
    3. 3. Llamada a funciones
    4. 4. Gestión de variables locales
    5. 5. Definición de funciones homónimas(polimorfismo)
    6. 6. Funciones con un número variable de argumentos
    7. 7. Asignación de valores por defecto a los argumentos
    8. 8. Funciones en línea
    9. 9. Funciones externas de tipo C
    10. 10. Funciones recursivas
    11. 11. La función main()
La memoria para los programas
  1. Punteros
    1. 1. Punteros a variables
    2. 2. Punteros y matrices
    3. 3. Asignación de memoria
      1. a. Asignación mediante malloc()
      2. b. Asignación por new
    4. 4. Aritmética de punteros
    5. 5. Punteros a punteros
    6. 6. Punteros de función
      1. a. Uso para hacer algoritmos genéricos
      2. b. Funciones de callback
  2. Referencias
    1. 1. Mayor seguridad
    2. 2. La referencias a constantes
    3. 3. Devolución de una referencia desde una función
  3. Constantes
    1. 1. Constantes simbólicas
    2. 2. El tipo void
    3. 3. Alias de tipos: typedef
    4. 4. Constantes y enumeraciones
  4. Ejercicios prácticos
    1. 1. Encontrar el valor máximo en una matriz
      1. a. Declaración de la matriz
      2. b. Implementación del algoritmo como una función
      3. c. Ejecución del algoritmo
    2. 2. Encontrar la dirección del valor máximode una matriz
    3. 3. Utilizar referencias para encontrar el índicedel valor máximo de una matriz
Estructuración de los datos
  1. Programación estructurada
    1. 1. Estructuras
    2. 2. Construir una estructura
    3. 3. Instanciar estructuras
    4. 4. Instanciar durante la definición
    5. 5. Instanciar reservando memoria
    6. 6. Instanciación con el nuevo operador
    7. 7. Punteros y estructuras
    8. 8. Organización de la programación
      1. a. Inclusión mediante #include
      2. b. Protección contra inclusiones múltiples
    9. 9. Uniones
    10. 10. Copia de estructuras
    11. 11. Crear alias de tipos de estructuras
  2. Estructuras y funciones
    1. 1. Pasar una estructura basada en valores como argumento
    2. 2. Pasar una estructura por referencia como argumento
    3. 3. Pasar una estructura por dirección como argumento
    4. 4. De la programación funcional a la programaciónde objetos
    5. 5. Gestión de la memoria
      1. a. Alineación de datos
      2. b. Asignar memoria entre procesos
  3. La librería estándar de C
    1. 1. Funciones comunes del lenguaje C <stdlib.h></stdlib.h>
    2. 2. Cadenas <string.h></string.h>
    3. 3. Archivos <stdio.h></stdio.h>
  4. Ejercicios prácticos
    1. 1. Las estructuras
    2. 2. La función de inicialización
    3. 3. Funciones de visualización
    4. 4. Funciones de entrada y salida
    5. 5. Función principal
    6. 6. Ejecución del programa y pruebas
Programación orientada a objetos
  1. Clases e instancias
    1. 1. Definición de clase
    2. 2. Los modificadores de acceso
    3. 3. Organizar la programación de las clases
    4. 4. Instanciación
    5. 5. Constructor
    6. 6. El puntero this
    7. 7. Destructor
    8. 8. Destructor virtual
    9. 9. Asignación dinámica
    10. 10. Constructor de copia
  2. Herencia
    1. 1. Derivación de clases (herencia)
    2. 2. Ejemplo de derivación de clase
    3. 3. Herencia pública, protegida y privada
    4. 4. Llamada de los constructores
    5. 5. Polimorfismo
    6. 6. Métodos polimórficos
    7. 7. Conversión de objetos
    8. 8. Métodos virtuales y métodos virtualespuros
    9. 9. Herencia múltiple
    10. 10. Anotaciones especiales para la herencia múltiple
    11. 11. Consecuencias de la herencia múltiple enla programación
  3. Otros aspectos de la programación orientada a objetos
    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 del operador
      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. Creación de middleware orientado a objetos
  4. Las excepciones más seguras que los errores
    1. 1. Propagación explícita
    2. 2. Tipos de excepción personalizados
      1. a. Definición de las clases de excepción
      2. b. Instanciación de clases
      3. c. Clases de excepción derivadas
    3. 3. Tratamiento de una excepción y reintento
    4. 4. Excepciones no interceptadas
    5. 5. Adquisición de recursos
  5. Programación genérica
    1. 1. Modelos de funciones
    2. 2. Modelos de clase
  6. Trabajo práctico
    1. 1. Uso de la herencia de clases en el intérpretetiny-lisp
    2. 2. Punteros de miembros para funciones callback
La librería STL estándar
  1. Introducción
  2. Organización de programas
    1. 1. Espacio de nombres
      1. a. Uso completo de un espacio de nombres
      2. b. Espacio de nombres repartido en varios 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 librería STL
  3. Flujos C++ (entrada-salida)
    1. 1. General
    2. 2. Flujo integrado
    3. 3. Estado de un flujo
    4. 4. Formato
    5. 5. Flujo de archivos
    6. 6. Flujo de alimentación
    7. 7. Parámetros locales
  4. Clase string para representar cadenas de caracteres
    1. 1. Representación de cadenas en la libreríaSTL
    2. 2. Cómo utilizar la clase string
      1. a. Funciones básicas
      2. b. Constructores
      3. c. Iteradores
      4. d. Acceso a los elementos
    3. 3. Integración en el lenguaje C++
      1. a. Asignaciones
      2. b. Comparaciones
      3. c. Conversión con C++
    4. 4. Funciones específicas de las cadenas
      1. a. Inserción
      2. b. Concatenación
      3. c. Búsqueda y sustitución
      4. d. Extracción de subcadenas
  5. Contenedores dinámicos
    1. 1. Contenedores
      1. a. Inserción de elementos y recorridos
      2. b. Iteradores
      3. c. Operaciones aplicables a un vector
    2. 2. Contenedores estándares
      1. a. Iteradores
      2. b. Acceso a los elementos
      3. c. Operaciones de pila y cola
      4. d. Operaciones sobre listas
      5. e. Operaciones de asociación
    3. 3. La secuencia list
    4. 4. La secuencia deque
    5. 5. Adaptadores de secuencias
    6. 6. La pila stack
    7. 7. La cola
    8. 8. La cola prioritaria
    9. 9. El contenedor asociativo map
    10. 10. Los contenedores asociativos multimap, set y multiset
  6. Algoritmos
    1. 1. Operaciones de secuencia sin modificación
    2. 2. Secuencia de operaciones con modificación
    3. 3. Secuencias ordenadas
    4. 4. Algoritmos de conjunto
    5. 5. Mínimo y máximo
    6. 6. Cálculo numérico
      1. a. Límites de los formatos ordinarios
      2. b. Funciones de librería
      3. c. Funciones de librería estándar yclase valarray
  7. Las aportaciones del C++ moderno
    1. 1. Las expresiones lambda
    2. 2. Inferencia de tipo
    3. 3. Los nuevos tipos de bucles
    4. 4. Los punteros inteligentes
  8. Introducción a la librería boost
    1. 1. Instalación de la librería
    2. 2. Un primer ejemplo con boost
    3. 3. Campos de aplicación
  9. Trabajo práctico
    1. 1. La clase Variant
    2. 2. El método to_string()
    3. 3. Traducción JSON
      1. a. El método estático to_json_string()
      2. b. El método estático from_json_string()
Los entornos de C++
  1. El entorno Windows
    1. 1. Programas Win32
      1. a. Elección del modo de compilación
      2. b. Cómo funcionan las aplicaciones en modo ventanaen Win32
      3. c. Creación de un proyecto de aplicaciónen modo ventana
      4. d. Los tipos de datos Win32
      5. e. Los handles y los mensajes
      6. f. El bucle de mensajes
      7. g. Los archivos de recurso
    2. 2. El entorno .NET
      1. a. El código gestionado y la máquinavirtual CLR
      2. b. Adaptaciones del lenguaje C++ CLI
      3. c. La norma CTS
      4. d. La clase Clase System::String
      5. e. El recolector de basura
      6. f. Funcionamiento de la bandeja recogemigas
      7. g. Matrices y funciones con un número variablede argumentos
      8. h. Las propiedades
      9. i. Los delegados y eventos
      10. j. Los métodos virtuales
      11. k. Las clases abstractas e las interfaces
      12. l. El framework .NET
      13. m. La referencias de ensamblado
      14. n. El espacio de nombres System::E/S
      15. o. El espacio de nombres System::Xml
      16. p. El espacio de nombres System::Data
      17. q. El espacio de nombres System::Collections
      18. r. El espacio de nombres System::Collections::Generic
    3. 3. Relaciones con otros lenguajes: el ejemplo de C#
  2. Aplicaciones
    1. 1. Crear una aplicación de dibujo Win32
    2. 2. Una aplicación C++ para.NET: la hoja de cálculo InCell
      1. a. Arquitectura de hojas de cálculo
      2. b. La hoja de cálculo
      3. c. El programador de cálculos
      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 elementos db_insert
      4. d. Guardar listas persistentes db_save
      5. e. Selección de elementos en listas persistentesdb_select
Programación de algoritmos en C++
  1. Introducción
  2. Reconocimiento de patrones de texto
    1. 1. Enfoque directo
    2. 2. Lectura con desplazamiento: el algoritmo Boyer-Moore
    3. 3. Método para los patrones autorrepetitivos:el algoritmo KMP
  3. Encontrar el camino más corto
    1. 1. Presentación de los grafos
      1. a. Incidencia y adyacencia
      2. b. Camino de un grafo
      3. c. El recorrido del grafo en anchura primer lugar
    2. 2. El algoritmo de Dijkstra
    3. 3. Utilización de un método con heurística:el algoritmo A*
  4. Comprimir archivos
    1. 1. Enfoque estadístico: algoritmo Huffman
      1. a. Aplicación de la codificación
      2. b. Compresión de archivos
      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 de diccionarios
      4. d. Programa de compresión
      5. e. Programa de descompresión
  5. Implementación de una red neuronal en C++
    1. 1. ¿Una red neuronal para algoritmos?
    2. 2. Implementación de una red neuronal en C++
    3. 3. Una clase abstracta para controlar la red
    4. 4. Modelización de una puerta lógica
    5. 5. Un motor de inferencia para aritmética deenteros
      1. a. Aprendizaje de símbolos
      2. b. Uso de la red
Autor : Brice-Arnaud GUÉRIN

Brice-Arnaud GUÉRIN

Brice-Arnaud Guérin es ingeniero en ESIEA y director de programas en Kantar, así como autor de ENI desde 2003. Sus habilidades en el desarrollo y su deseo de compartir sus conoci­mientos lo han llevado de manera natu­ral a escribir libros sobre la gestión de proyectos y la creación de aplicaciones (C++, .NET, 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