Delegación de objetos en C++

Introducción:

  • Cada lenguaje de programación que se basa en un concepto orientado a objetos intenta conectar todo con el mundo real.
  • De manera similar, los lenguajes C++ usan clases , herencia , polimorfismo para conectar el concepto con el concepto del mundo real.
  • En este artículo, el tema de discusión será qué es la delegación de objetos en C++ y el uso de la delegación de objetos en C++.

Delegación de objetos en C++: Delegación de objetos significa usar el objeto de otra clase como miembro de otra clase. Se conoce como delegación de objetos. A continuación se muestran algunas propiedades de la delegación:

  • La delegación puede ser una alternativa a la herencia, pero en una herencia hay una relación, pero en la delegación no hay una relación de herencia entre las clases.
  • La Delegación nos permite usar las propiedades de la clase particular que se requiere en la clase.
  • La delegación se puede ver como una relación entre objetos donde un objeto reenvía ciertas llamadas de método a otro objeto, llamado su delegado.
  • La principal ventaja de la delegación es la flexibilidad del tiempo de ejecución: el delegado se puede cambiar fácilmente durante el tiempo de ejecución.
  • Pero a diferencia de la herencia, la delegación no es compatible directamente con los lenguajes orientados a objetos más populares y no facilita el polimorfismo dinámico .

A continuación se muestra el programa C++ que ilustra la delegación de objetos:

C++

// C++ program to illustrate the
// Object Delegation
#include <iostream>
using namespace std;
class First {
public:
    void print() { cout << "The Delegate"; }
};
class Second {
    // Creating instance of the class
    First ob;
 
public:
    void print() { ob.print(); }
};
 
// Driver Code
int main()
{
    Second ob1;
    ob1.print();
    return 0;
}
Producción: 

The Delegate

 

¿Cuándo usar qué?

Estos son algunos ejemplos de cuándo se utilizan la herencia o la delegación:

  • Suponga que la clase se llama B y la clase derivada/delegada se llama A.
  • Si los usuarios quieren expresar una relación (es-a), utilice la herencia.
  • Los usuarios quieren poder pasar la clase a una API existente que espera una A y luego usar la herencia .
  • Los usuarios quieren mejorar A, pero A es final y no puede subclasificarse más que la composición y delegación de uso.

Publicación traducida automáticamente

Artículo escrito por zack_aayush y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *