Зміст курсу
C++ ООП
C++ ООП
Делегування Конструктора
Делегування конструктора (також називається ланцюжком або пересиланням конструкторів) дозволяє одному конструктору викликати інший у межах того ж класу для повторного використання спільної логіки ініціалізації.
Синтаксис делегування конструктора
Делегування конструктора зазвичай використовується у синтаксисі списку ініціалізації. Це передбачає використання оператора двокрапки (:
), після якого вказується конструктор, до якого потрібно делегувати, а також додаткові аргументи або параметри, які необхідно передати.
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; };
Використання списків ініціалізації для делегування конструкторів не є обов'язковим, але зазвичай рекомендується для зрозумілості та підвищення продуктивності. За потреби можна викликати перевантажений конструктор з іншого конструктора.
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; };
Можлива нескінченна рекурсія при використанні делегування конструкторів. Переконайтеся, що конструктори структуровані так, щоб уникнути рекурсивних циклів викликів.
Делегування конструкторів надає численні переваги в об'єктно-орієнтованому програмуванні та є зручним у використанні, незважаючи на початкову складність, яка може здаватися.
Дякуємо за ваш відгук!