Delegación de Constructores
Desliza para mostrar el menú
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
1234567891011121314151617class 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 es recomendado por claridad y rendimiento. Si es necesario, se puede llamar a un constructor sobrecargado desde otro constructor en su lugar.
point.h
123456789101112131415#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; };
Posible recursión infinita puede ocurrir 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 parecer tener.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla