Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Delegación de Constructores | Constructores y Destructores
POO en C++

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

user_account.h

1234567891011121314151617
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 es recomendado por claridad y rendimiento. Si es necesario, se puede llamar a un constructor sobrecargado desde otro constructor en su lugar.

point.h

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; };
Note
Nota

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.

question mark

¿Qué es la delegación de constructores?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 5

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Sección 2. Capítulo 5
some-alt