Contenu du cours
Programmation Orientée Objet en C++
Programmation Orientée Objet en C++
Délégation de Constructeur
Délégation de constructeur (également appelée chaînage ou transmission de constructeur) permet à un constructeur d'en appeler un autre au sein de la même classe afin de réutiliser une logique d'initialisation commune.
Syntaxe de la délégation de constructeur
La délégation de constructeur s'utilise généralement dans la syntaxe d'une liste d'initialisation. Elle implique l'utilisation de l'opérateur deux-points (:
), suivi du constructeur auquel vous souhaitez déléguer, puis des arguments ou paramètres supplémentaires à transmettre.
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'utilisation des listes d'initialisation pour la délégation de constructeur n'est pas obligatoire, mais elle est généralement recommandée pour la clarté et les performances. Si nécessaire, il est possible d'appeler un constructeur surchargé depuis un autre constructeur.
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; };
Un risque de récursion infinie peut survenir lors de l'utilisation de la délégation de constructeur. Veiller à structurer les constructeurs afin d'éviter les boucles d'appels récursifs.
La délégation de constructeurs offre de multiples avantages en programmation orientée objet et s'avère pratique à utiliser, malgré la complexité initiale qu'elle peut sembler présenter.
Merci pour vos commentaires !