Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Konstruktordelegation | Konstruktører og Destruktører
C++ OOP
course content

Kursusindhold

C++ OOP

C++ OOP

1. Grundlæggende OOP i C++
2. Konstruktører og Destruktører
3. Oversigt Over Indkapsling
4. Oversigt over Arv
5. Oversigt Over Polymorfi

book
Konstruktordelegation

Konstruktordelegation (også kaldet konstruktorkædning eller videresendelse) gør det muligt for én konstruktør at kalde en anden inden for samme klasse for at genbruge fælles initialiseringslogik.

Syntaks for konstruktordelegation

Konstruktordelegation anvendes typisk i syntaksen for en initialiseringsliste. Det indebærer brugen af kolon-operatoren (:), efterfulgt af den konstruktør, du ønsker at delegere til, samt eventuelle yderligere argumenter eller parametre, der skal videregives.

user_account.h

user_account.h

copy
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; };

Brug af initialiseringslister til konstruktordelegation er ikke påkrævet, men det er generelt anbefalet for klarhed og ydeevne. Om nødvendigt kan du kalde en overbelastet konstruktør fra en anden konstruktør i stedet.

point.h

point.h

copy
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
Bemærk

Potentiel uendelig rekursion kan forekomme ved brug af konstruktordelegation. Sørg for, at konstruktørerne er struktureret, så rekursive kald undgås.

Konstruktordelegation giver flere fordele i objektorienteret programmering og er praktisk at anvende, selvom det umiddelbart kan virke komplekst.

question mark

Hvad er konstruktordelegation?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 5

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

course content

Kursusindhold

C++ OOP

C++ OOP

1. Grundlæggende OOP i C++
2. Konstruktører og Destruktører
3. Oversigt Over Indkapsling
4. Oversigt over Arv
5. Oversigt Over Polymorfi

book
Konstruktordelegation

Konstruktordelegation (også kaldet konstruktorkædning eller videresendelse) gør det muligt for én konstruktør at kalde en anden inden for samme klasse for at genbruge fælles initialiseringslogik.

Syntaks for konstruktordelegation

Konstruktordelegation anvendes typisk i syntaksen for en initialiseringsliste. Det indebærer brugen af kolon-operatoren (:), efterfulgt af den konstruktør, du ønsker at delegere til, samt eventuelle yderligere argumenter eller parametre, der skal videregives.

user_account.h

user_account.h

copy
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; };

Brug af initialiseringslister til konstruktordelegation er ikke påkrævet, men det er generelt anbefalet for klarhed og ydeevne. Om nødvendigt kan du kalde en overbelastet konstruktør fra en anden konstruktør i stedet.

point.h

point.h

copy
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
Bemærk

Potentiel uendelig rekursion kan forekomme ved brug af konstruktordelegation. Sørg for, at konstruktørerne er struktureret, så rekursive kald undgås.

Konstruktordelegation giver flere fordele i objektorienteret programmering og er praktisk at anvende, selvom det umiddelbart kan virke komplekst.

question mark

Hvad er konstruktordelegation?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 5
some-alt