Contenido del Curso
POO en C++
POO en C++
Delegación de Constructores
Delegación de constructores (también llamada encadenamiento o reenvío de constructores) permite que un constructor llame a otro dentro de la misma clase para reutilizar la lógica común de inicialización.
Sintaxis de la delegación de constructores
La delegación de constructores se utiliza habitualmente dentro de la sintaxis de una lista de inicialización. Implica el uso del operador dos puntos (:
), seguido del constructor al que se desea delegar y luego cualquier argumento o parámetro adicional que deba pasarse.
user_account.h
class UserAccount { public: // Primary constructor UserAccount(int userId, int accessLevel) : userId(userId), accessLevel(accessLevel) { // Constructor body } // Delegating constructor (default accessLevel) UserAccount(int userId) : UserAccount(userId, 0) { // Constructor body } int userId; int accessLevel; };
El uso de listas de inicialización para la delegación de constructores no es obligatorio, pero generalmente se recomienda por claridad y rendimiento. Si es necesario, se puede llamar a un constructor sobrecargado desde otro constructor en su lugar.
point.h
#include <iostream> class Point { public: // Delegating constructor to initialize default point at origin Point() { Point(0, 0); } // Main constructor Point(int x, int y) : x(x), y(y) {} int x, y; };
Puede ocurrir recursión infinita potencial al utilizar la delegación de constructores. Asegúrese de que los constructores estén estructurados para evitar bucles de invocación recursiva.
La delegación de constructores ofrece múltiples beneficios en la programación orientada a objetos y resulta conveniente de utilizar, a pesar de la complejidad inicial que pueda aparentar.
¡Gracias por tus comentarios!