Programación orientada a objetos con C++

Programación orientada a objetos con C++

  • Author: Ceballos Sierra, Fco. Javier
  • Publisher: Rama Editorial
  • Serie: Profesional
  • ISBN: 9788499647845
  • Place of publication:  Madrid , Spain
  • Year of publication: 2018
  • Pages: 829
La programación orientada a objetos (POO) es una de las técnicas más modernas de desarrollo que trata de disminuir el coste del software, aumentando la eficiencia y reduciendo el tiempo de espera para la puesta en escena de una nueva aplicación. Por eso, donde la POO toma verdadera ventaja es en poder compartir y reutilizar el código. Sin embargo, no debe pensarse que esta forma de programación resuelve todos los problemas de una forma sencilla y rápida. Para conseguir buenos resultados, es preciso dedicar un tiempo mayor al análisis y al diseño; pero no será un tiempo perdido, ya que redundará en el menor tiempo empleado en la realización de aplicaciones futuras. Existen varios lenguajes que permiten escribir un programa orientado a objetos y entre ellos se encuentra C++. Se trata de un lenguaje de programación basado en el lenguaje C, estandarizado (ISO/IEC 14882), ampliamente difundido y con una biblioteca estándar C++ que lo ha convertido en un lenguaje universal, de propósito general, y muy utilizado tanto en el ámbito profesional como en el educativo. Programación orientada a objetos con C++ es un libro: • Totalmente actualizado al estándar ISO/IEC 14882:2017-2020, relativo al lenguaje C++ estándar. • Con ejemplos claros y sencillos, fáciles de entender, que ilustran los fundamentos de la programación C++. • Que le permitirá aprender programación orientada a objetos. • Que le enseñará a trabajar con plantillas, excepciones, archivos e hilos. • Y con el que aprenderá a desarrollar aplicaciones orientadas a objetos. Incluye material adicional con todos los ejemplos realizados y con el software necesario para que el lector pueda reproducirlos durante el estudio.
  • CONTENIDO
  • PRÓLOGO
  • CAPÍTULO 1. C++ versus C
    • HISTORIA DEL LENGUAJE C++
    • RESUMEN DE LA BIBLIOTECA DE C++
      • Entrada/salida
      • Cadenas
      • Contenedores
      • Iteradores
      • Algoritmos
      • Números
      • Diagnósticos
      • Utilidades generales
      • Localización
      • Soporte del lenguaje
      • Concurrencia
    • LENGUAJE C++ Y COMPONENTES DE LA BIBLIOTECA
      • Estructura de un programa
      • Tipos, constantes, variables y estructuras
      • Referencias
      • Clases
      • Plantillas
      • Contenedores de la biblioteca de C++
        • Cadenas de caracteres
        • Matrices
    • ASIGNACIÓN DINÁMICA DE MEMORIA
    • MANIPULACIÓN DE ERRORES
    • AÑADIR UN MENÚ DE OPCIONES
    • EVITAR LAGUNAS DE MEMORIA
    • COMPILACIÓN SEPARADA
  • CAPÍTULO 2. PROGRAMACIÓN ORIENTADA A OBJETOS
    • PENSAR EN OBJETOS
      • Clases y objetos
      • Mensajes y métodos
    • DISEÑO DE UNA CLASE DE OBJETOS
    • CONSTRUCTORES
    • HERENCIA
    • EJERCICIOS RESUELTOS
    • EJERCICIOS PROPUESTOS
  • CAPÍTULO 3. OTRAS APORTACIONES DE C++
    • FUNCIONES
      • Partes de una declaración de función
    • PALABRAS RESERVADAS NUEVAS
    • COMENTARIOS
    • OPERADORES C++
    • PRIORIDAD Y ORDEN DE EVALUACIÓN
    • CONVERSIÓN EXPLÍCITA DEL TIPO DE UNA EXPRESIÓN
    • CONVERSIÓN DEL TIPO void*
    • TIPOS DE DATOS PREDEFINIDOS
    • TIPOS DE DATOS DEFINIDOS POR EL USUARIO
    • IDENTIFICADORES Y ESTRUCTURAS
    • ÁMBITO DE UNA ESTRUCTURA
    • DECLARACIÓN DE CONSTANTES
    • CALIFICADOR VOLATILE
    • FLEXIBILIDAD EN LAS DECLARACIONES
      • Declaración en una sentencia
    • EL OPERADOR DE RESOLUCIÓN DEL ÁMBITO (::)
    • ESPECIFICACIONES DE ENLACE
    • ARGUMENTOS POR OMISIÓN EN UNA FUNCIÓN
    • FUNCIONES EN LÍNEA
    • FUNCIONES constexpr
    • MACROS
    • FUNCIONES SOBRECARGADAS
      • Ambigüedades
    • OPERADORES SOBRECARGADOS
    • REFERENCIAS
    • PASO DE PARÁMETROS POR REFERENCIA
    • REFERENCIA COMO VALOR RETORNADO
    • ESPACIOS DE NOMBRES
      • Directriz using
    • EXCEPCIONES
    • LOS OPERADORES new Y delete
      • Operador new
      • Memoria insuficiente
      • Operador delete
      • Lagunas de memoria
    • EJERCICIOS RESUELTOS
    • EJERCICIOS PROPUESTOS
  • CAPÍTULO 4. BIBLIOTECA ESTÁNDAR
    • ENTRADA Y SALIDA
      • Flujos de salida
      • Flujos de entrada
      • Estado de un flujo
      • Limpiar el buffer asociado con un flujo
      • Validar un dato de entrada
      • Entrada/salida con formato
      • Entrada de caracteres
      • Entrada de cadenas de caracteres
      • Redirección de la entrada y de la salida
    • BIBLIOTECA ESTÁNDAR DE PLANTILLAS
      • String
        • Constructores
        • Iteradores
        • Acceso a un carácter
        • Asignación
        • Conversiones a cadenas estilo C
        • Comparaciones
        • Inserción
        • Concatenación
        • Búsqueda
        • Reemplazar
        • Subcadenas
        • Tamaño
        • Operaciones de E/S
        • Conversiones
      • Vector
        • Acceso a los elementos
        • Iteradores
        • Tamaño
        • Eliminar elementos
        • Buscar elementos
        • Insertar elementos
        • Comparaciones
      • Map
    • ALGUNAS UTILIDADES
      • Conversiones elementales
      • Configuración regional
      • Colecciones de valores heterogéneos
      • Soporte para fechas y horas
      • Números seudo-aleatorios
    • EJERCICIOS RESUELTOS
  • CAPÍTULO 5. CLASES
    • DEFINICIÓN DE UNA CLASE
      • Atributos
      • Métodos de una clase
      • Control de acceso a los miembros de la clase
        • Acceso público
        • Acceso privado
        • Acceso protegido
      • Clases en archivos de cabecera
    • IMPLEMENTACIÓN DE UNA CLASE
    • MÉTODOS SOBRECARGADOS
    • ARGUMENTOS POR OMISIÓN
    • PROBAR LA CLASE
    • EL PUNTERO IMPLÍCITO this
    • MÉTODOS Y OBJETOS CONSTANTES
    • AUTO REFERENCIA
    • INICIACIÓN DE UN OBJETO
      • Constructor
      • Delegación de constructores
      • Constructor explicit
      • Asignación de objetos
      • Constructor copia
    • SEMÁNTICAS DE MOVIMIENTO Y COPIA
    • FUNCIONES PREDETERMINADAS Y ELIMINADAS
    • DESTRUCCIÓN DE OBJETOS
      • Destructor
    • PUNTEROS COMO ATRIBUTOS DE UNA CLASE
      • Listas de iniciación
      • Semántica de movimiento
      • Vector de vectores
    • MIEMBROS STATIC DE UNA CLASE
      • Atributos static
      • Acceder a los atributos static
      • Métodos static
    • FUNCIONES AUXILIARES
    • ATRIBUTOS QUE SON OBJETOS
    • CLASES INTERNAS
    • INTEGRIDAD DE LOS DATOS
    • DEVOLVER UN PUNTERO O UNA REFERENCIA
    • MATRICES DE OBJETOS
    • FUNCIONES AMIGAS DE UNA CLASE
    • PUNTEROS A MIEMBROS DE UNA CLASE
    • EJERCICIOS RESUELTOS
    • EJERCICIOS PROPUESTOS
  • CAPÍTULO 6 . OPERADORES SOBRECARGADOS
    • SOBRECARGAR UN OPERADOR
      • Utilizando una función externa
      • Utilizando un método de una clase
    • UNA CLASE PARA NÚMEROS RACIONALES
    • SOBRECARGA DE OPERADORES BINARIOS
      • Sobrecarga de operadores de asignación
      • Sobrecarga de operadores aritméticos
      • Aritmética mixta
      • Sobrecarga de operadores de relación
      • Métodos adicionales
      • Sobrecarga del operador de inserción
      • Sobrecarga del operador de extracción
    • SOBRECARGA DE OPERADORES UNARIOS
      • Incremento y decremento
      • Operadores unarios/binarios
    • CONVERSIÓN DE TIPOS DEFINIDOS POR EL USUARIO
      • Conversión mediante constructores
      • Operadores de conversión
      • Ambigüedades
    • ASIGNACIÓN
    • INDEXACIÓN
    • LLAMADA A FUNCIÓN
    • DESREFERENCIA
    • SOBRECARGA DE LOS OPERADORES new y delete
      • Sobrecarga del operador new
      • Sobrecarga del operador delete
    • EJERCICIOS RESUELTOS
    • EJERCICIOS PROPUESTOS
  • CAPÍTULO 7 . CLASES DERIVADAS
    • CLASES DERIVADAS Y HERENCIA
    • DEFINIR UNA CLASE DERIVADA
      • Control de acceso a la clase base
      • Control de acceso a los miembros de las clases
      • Qué miembros hereda una clase derivada
    • ATRIBUTOS CON EL MISMO NOMBRE
    • REDEFINIR MÉTODOS DE LA CLASE BASE
    • CONSTRUCTORES DE CLASES DERIVADAS
    • COPIA DE OBJETOS
    • DESTRUCTORES DE CLASES DERIVADAS
    • JERARQUÍA DE CLASES
    • FUNCIONES AMIGAS
    • PUNTEROS Y REFERENCIAS
      • Conversiones implícitas
        • Restricciones
      • Conversiones explícitas
    • MÉTODOS VIRTUALES
      • Control override y final
      • Cómo son implementados los métodos virtuales
      • Constructores virtuales
      • Destructores virtuales
    • INFORMACIÓN DE TIPOS DURANTE LA EJECUCIÓN
      • Operador dynamic_cast
      • Operador typeid
    • POLIMORFISMO
    • CLASES ABSTRACTAS
    • HERENCIA MÚLTIPLE
      • Clases base virtuales
      • Redefinición de métodos de clases base virtuales
      • Conversiones entre clases
    • EJERCICIOS RESUELTOS
    • EJERCICIOS PROPUESTOS
  • CAPÍTULO 8 . PROGRAMACIÓN GENÉRICA
    • DEFINICIÓN DE UNA PLANTILLA
    • FUNCIONES GENÉRICAS
      • Especialización de plantillas de función
      • Sobrecarga de plantillas de función
    • ORGANIZACIÓN DEL CÓDIGO DE LAS PLANTILLAS
      • Modelo de inclusión
      • Modelo de instanciación explícita
    • CLASES GENÉRICAS
      • Declaración previa de una clase genérica
      • Especialización de plantillas de clase
      • Derivación de plantillas
      • Otras características de las plantillas
    • EJERCICIOS RESUELTOS
    • EJERCICIOS PROPUESTOS
  • CAPÍTULO 9 . EXCEPCIONES
    • EXCEPCIONES DE C++
    • MANEJAR EXCEPCIONES
      • Lanzar una excepción
      • Capturar una excepción
      • Excepciones derivadas
      • Capturar cualquier excepción
      • Relanzar una excepción
    • CREAR EXCEPCIONES
      • Especificación de excepciones
      • Excepciones no esperadas
    • FLUJO DE EJECUCIÓN
    • CUÁNDO UTILIZAR EXCEPCIONES Y CUÁNDO NO
    • DISEÑO SEGURO CON EXCEPCIONES
    • EJERCICIOS RESUELTOS
    • EJERCICIOS PROPUESTOS
  • CAPÍTULO 10 . GESTIÓN DE RECURSOS
    • PUNTEROS INTELIGENTES
      • Clases de punteros inteligentes
        • unique_ptr
        • shared_ptr
        • weak_ptr
      • Operar con unique_ptr
      • Miembros de una clase de tipo unique_ptr
      • Colecciones STL de elementos de tipo unique_ptr
      • Operar con shared_ptr
      • Operar con weak_ptr
    • EJERCICIOS RESUELTOS
    • EJERCICIOS PROPUESTOS
  • CAPÍTULO 11 . FLUJOS
    • VISIÓN GENERAL DE LOS FLUJOS DE E/S
    • BÚFERES
      • Flujo, búfer, archivo y programa
    • VISIÓN GENERAL DE UN ARCHIVO
    • DESCRIPCIÓN DE LOS BÚFERES Y FLUJOS
      • Clase streambuf
      • Clase filebuf
      • Clase ostream
      • Clase istream
      • Clase iostream
      • Clase ofstream
      • Clase ifstream
      • Clase fstream
    • E/S CARÁCTER A CARÁCTER
    • E/S DE CADENAS DE CARACTERES
    • ENTRADA/SALIDA CON FORMATO
    • E/S UTILIZANDO REGISTROS
    • ABRIENDO ARCHIVOS PARA ACCESO SECUENCIAL
      • Un ejemplo de acceso secuencial
    • ACCESO ALEATORIO A ARCHIVOS EN EL DISCO
    • CADENAS DE CARACTERES
      • Un ejemplo con flujos de cadena
    • ESCRIBIR DATOS EN LA IMPRESORA
    • EJERCICIOS RESUELTOS
    • EJERCICIOS PROPUESTOS
  • CAPÍTULO 12 . PROGRAMACIÓN CONCURRENTE
    • CONCEPTO DE PROCESO
    • HILOS
      • Estados de un hilo
      • Cuándo se debe crear un hilo
    • BIBLIOTECAS C/C++ PARA PROGRAMAR CON HILOS
    • CREACIÓN Y DESTRUCCIÓN DE HILOS
      • Pasando argumentos a la función asociada con el hilo
      • Espera activa y pasiva
      • Objetos función
      • Finalización de un hilo
    • SINCRONIZACIÓN DE HILOS
      • Secciones críticas
        • Exclusión mutua
        • Mutex reentrante
      • Gestión genérica de un mutex
      • Semáforos
        • Problema del productor-consumidor con semáforos
      • Variables de condición
        • Problema del productor-consumidor
    • PLANIFICACIÓN DE HILOS
    • INTERBLOQUEO
    • UNA CLASE CHilo
    • PROGRAMACIÓN DE ALTO NIVEL UTILIZANDO HILOS
      • Futuros y promesas
      • Tareas empaquetadas
      • Tareas asíncronas
    • EJERCICIOS RESUELTOS
    • EJERCICIOS PROPUESTOS
  • APÉNDICE A. NOVEDADES DE C++
    • LITERALES PUROS
    • INFERENCIA DE TIPOS
    • OPERADOR decltype
    • ÁNGULOS DERECHOS EN EL USO DE PLANTILLAS
    • SENTENCIA for APLICADA A COLECCIONES
    • LISTA DE INICIACIÓN
    • ENUMERACIONES
    • ENTERO MUY LARGO
    • PUNTERO NULO
    • EXPRESIONES CONSTANTES GENERALIZADAS
    • CONVERSIONES IMPLÍCITAS
    • CONVERSIONES EXPLÍCITAS
    • REFERENCIAS RVALUE Y LVALUE
    • SEMÁNTICAS DE MOVIMIENTO Y COPIA
    • DECLARACIÓN ALTERNATIVA DE FUNCIÓN
    • PLANTILLAS variadic
    • CONCEPTO
    • ENVOLTORIO PARA UNA REFERENCIA
    • PUNTEROS INTELIGENTES
    • EXPRESIONES LAMBDA
    • PROGRAMACIÓN CONCURRENTE
  • APÉNDICE B . LA BIBLIOTECA DE C
    • ENTRADA Y SALIDA
      • printf
      • scanf
        • El argumento es
        • Carácter un puntero a Entrada esperada
      • getchar
      • putchar
      • gets
      • puts
    • CADENAS DE CARACTERES
      • strcat
      • strcpy
      • strchr
      • strrchr
      • strcmp
      • strcspn
      • strlen
      • strncat
      • strncpy
      • strncmp
      • strspn
      • strstr
      • strtok
      • strlwr
      • strupr
    • CONVERSIÓN DE DATOS
      • atof
      • atoi
      • atol
      • sprintf
      • toascii
      • tolower
      • toupper
    • FUNCIONES MATEMÁTICAS
      • acos
      • asin
      • atan
      • atan2
      • cos
      • sin
      • tan
      • cosh
      • sinh
      • tanh
      • exp
      • log
      • log10
      • ceil
      • fabs
      • floor
      • pow
      • sqrt
      • rand
      • srand
    • FUNCIONES DE FECHA Y HORA
      • clock
      • time
      • ctime
      • localtime
    • MANIPULAR BLOQUES DE MEMORIA
      • memset
      • memcpy
      • memcmp
    • ASIGNACIÓN DINÁMICA DE MEMORIA
      • malloc
      • free
      • realloc
    • ARCHIVOS
      • fopen
      • freopen
      • fclose
      • ferror
      • clearerr
      • feof
      • ftell
      • fseek
      • rewind
      • fputc
      • fgetc
      • fputs
      • fgets
      • fprintf
      • fscanf
      • fwrite
      • fread
      • fflush
    • MISCELÁNEA
      • system
  • APÉNDICE C . ENTORNOS DE DESARROLLO
    • MICROSOFT VISUAL STUDIO
      • Instalación
      • Escribir una aplicación
      • Depurar la aplicación
      • A tener en cuenta
      • Interfaz de línea de órdenes
    • CREAR UNA BIBLIOTECA
    • CODEBLOCKS
      • Instalación
        • MinGW
        • CodeBlocks
      • Escribir una aplicación
    • LINUX: INTERFAZ DE LÍNEA DE ÓRDENES
      • El depurador gdb de GNU
  • APÉNDICE D . CÓDIGOS DE CARACTERES
    • UTILIZACIÓN DE CARACTERES ANSI CON WINDOWS
    • JUEGO DE CARACTERES ANSI
    • UTILIZACIÓN DE CARACTERES ASCII
    • JUEGO DE CARACTERES ASCII
    • JUEGO DE CARACTERES UNICODE
  • ÍNDICE

SUBSCRIBE TO OUR NEWSLETTER

By subscribing, you accept our Privacy Policy