Kursinhalt
C++ OOP
C++ OOP
Konstruktor-Delegation
Konstruktor-Delegation (auch als Konstruktor-Verkettung oder -Weiterleitung bezeichnet) ermöglicht es, dass ein Konstruktor einen anderen innerhalb derselben Klasse aufruft, um gemeinsame Initialisierungslogik wiederzuverwenden.
Syntax der Konstruktor-Delegation
Konstruktor-Delegation wird üblicherweise innerhalb der Syntax einer Initialisierungsliste verwendet. Dabei wird der Doppelpunkt-Operator (:
) genutzt, gefolgt von dem Konstruktor, an den delegiert werden soll, sowie den zusätzlichen Argumenten oder Parametern, die übergeben werden müssen.
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; };
Die Verwendung von Initialisierungsliste für die Konstruktor-Delegation ist nicht erforderlich, wird jedoch aus Gründen der Übersichtlichkeit und Leistung im Allgemeinen empfohlen. Falls nötig, kann ein überladener Konstruktor von einem anderen Konstruktor aus aufgerufen werden.
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; };
Potenzielle Endlosrekursion kann bei der Verwendung von Konstruktor-Delegation auftreten. Stellen Sie sicher, dass Konstruktoren so strukturiert sind, dass rekursive Aufrufschleifen vermieden werden.
Konstruktor-Delegation bietet zahlreiche Vorteile in der objektorientierten Programmierung und ist trotz anfänglicher Komplexität bequem anwendbar.
Danke für Ihr Feedback!