KnowledgeCity

Polimorfismo avanzado en C++

Este módulo trata sobre el diseño y la herencia de clases.

Este módulo trata sobre el diseño y la herencia de clases. Introduciremos los conceptos de buen diseño de clases. Mostraremos la forma de usar la herencia para describir objetos del mundo real. También describirá diferentes tipos de herencia y cómo usarlos, pero también introducirá un concepto de composición que puede usarse para describir componentes del objeto de la vida real. Objetivos de aprendizaje

  • Aprender los principios del buen diseño de clases.
  •  Aprenda sobre la herencia
  • Aprenda sobre la composición de la clase

Habilidades

  •  Aplicar buenos principios de diseño.
  • Usar la herencia para describir objetos de la vida real
  • Usar la composición de la clase

Instructor: Mikhail Veygman

Duración: 17m · 7 lecciones
Nivel: Advanced
Idioma: Español

Habilidades que obtendrás

Fundamentos de CConceptos de CMódulos CDev-C++C++ integradoMultibinding

Lo que aprenderás

  • Aplicar los principios del buen diseño de clases en C++
  • Usar herencia para describir objetos del mundo real y trabajar con diferentes tipos de herencia
  • Usar composición de clases para describir componentes de objetos de la vida real
  • Distinguir entre polimorfismo estático y dinámico y aplicar vinculación dinámica
  • Declarar e invocar funciones virtuales y comprender VTable y destructores de clases polimórficas
  • Implementar funciones virtuales puras y clases de interfaz

Puntos clave

  • Este módulo cubre el diseño de clases y herencia, incluyendo los principios del buen diseño de clases.
  • La herencia se puede utilizar para describir objetos del mundo real, y el módulo explica sus diferentes tipos y cómo utilizarlos.
  • Se introduce la composición como una forma de describir los componentes de un objeto de la vida real.
  • El curso cubre el polimorfismo en sus formas estática y dinámica, incluyendo el polimorfismo logrado mediante vinculación dinámica.
  • Las funciones virtuales, VTable, destructores de clases polimórficas y funciones virtuales puras con clases de interfaz son parte del material.

Preguntas frecuentes

¿Qué cubre este módulo de C++?

El módulo trata sobre diseño de clases y herencia. Introduce los conceptos del buen diseño de clases, muestra cómo usar herencia para describir objetos del mundo real, describe diferentes tipos de herencia y cómo utilizarlos, e introduce composición para describir componentes de un objeto de la vida real.

¿Qué temas se enseñan en las lecciones?

Las lecciones cubren polimorfismo (estático y dinámico), vinculación dinámica, polimorfismo mediante vinculación dinámica, funciones virtuales (declaración e invocación), VTable, destructores virtuales/polimórficos de clases y funciones virtuales puras con clases de interfaz.

¿Cuáles son los objetivos de aprendizaje de este módulo?

Los objetivos de aprendizaje indicados son aprender los principios del buen diseño de clases, aprender sobre herencia y aprender sobre composición de clases.

¿Con qué habilidades se relaciona este curso?

Se relaciona con Fundamentos de C++, Conceptos de C++, Módulos de C++, Dev-C++, C++ Integrado y Vinculación Múltiple.

Transcripción

Transcripción

Antes de empezar a negociar con cómo varias versiones del polimorfismo están implementados en C ++, Actualicemos primero lo más básico. Comencemos con una definición. ¿Qué es el polimorfismo? El polimorfismo es la capacidad de una función o un objeto. con el mismo nombre para comportarse de manera diferente basado en diferentes tipos de insumos. Entonces, por ejemplo, veamos este código aquí. Aquí tenemos un ejemplo de operadores sobrecargados. menor que operador, mayor que operador, redireccionamiento a la izquierda, o más bien, redirigir. Además de la plantilla, obtenga max. Todos estos son ejemplos de lo que se conoce como polimorfismo estático. ¿Por qué estática? Porque C ++ es un lenguaje compilado y podría ocurrir polimorfismo basado en la información del tiempo de ejecución donde un objeto puede comportarse de manera diferente según la forma en que se haya configurado en tiempo de ejecución. O los objetos pueden crearse de manera diferente en el momento de la compilación. El polimorfismo estático también se conoce como polimorfismo de tiempo compilado, porque los objetos que tenemos aqui como operador menor que mayor que, se crean en tiempo de compilación y no cambian en tiempo de ejecución. Ahora veamos el polimorfismo dinámico o en tiempo de ejecución. El polimorfismo dinámico tiene dos ejemplos principales. Uno es la función primordial, que es lo que tenemos aquí. Donde tenemos una persona de clase que tiene la función nombre y apellido. Y luego tienes estudiantes de clase, que también tiene una función de nombre y apellido básicamente anulando el comportamiento de la misma función en la clase de persona. Entonces, si configuras una clase para estudiantes como la mía aquí, la función dará como resultado el nombre del estudiante este y el apellido del estudiante este. Demostremos. Compilar y correr. Ahora ves el nombre nombre del estudiante John apellido del estudiante Smith. Sabemos que esto en realidad proviene de un estudiante. El otro método que se usa más comúnmente que el anterior es el método nos referiríamos como objeto derivado por su punto de clase base o una referencia y utilizar una función virtual. Así que demostremos. Cambiemos la definición a virtual. Y creemos una función de salida utilizando la referencia de persona como clase. Y en lugar de llamar a la salida directamente, llamemos al nombre de salida de la función. Ahora ejecutémoslo. Y la salida que ves es exactamente la misma que antes, aunque llamamos al objeto con una referencia a una persona. Entonces, ¿cómo deberíamos llamar a estas funciones, una persona de salida primero, la persona al final, aunque no lo hacemos. ¿Cómo sería eso posible? se analiza en la siguiente sección.

Aprende sobre la marcha

Lleva tu aprendizaje a todas partes: la app de KnowledgeCity te permite ver las lecciones sobre la marcha.