Contenuti del Corso
OOP in C++
OOP in C++
Delegazione del Costruttore
Delegazione del costruttore (nota anche come concatenazione o inoltro del costruttore) consente a un costruttore di chiamarne un altro all'interno della stessa classe per riutilizzare la logica di inizializzazione comune.
Sintassi della delegazione del costruttore
La delegazione del costruttore viene solitamente utilizzata all'interno della sintassi di una lista di inizializzazione. Prevede l'uso dell'operatore due punti (:
), seguito dal costruttore a cui si desidera delegare e da eventuali argomenti o parametri aggiuntivi da passare.
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; };
L'uso delle liste di inizializzazione per la delega dei costruttori non è obbligatorio, ma è generalmente consigliato per chiarezza e prestazioni. Se necessario, è possibile chiamare un costruttore sovraccarico da un altro costruttore.
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; };
Potenziale ricorsione infinita può verificarsi durante l'utilizzo della delega dei costruttori. Assicurarsi che i costruttori siano strutturati per evitare cicli di invocazione ricorsiva
La delega dei costruttori offre molteplici vantaggi nella programmazione orientata agli oggetti ed è comoda da utilizzare, nonostante la complessità iniziale che potrebbe sembrare avere.
Grazie per i tuoi commenti!