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