Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Konstruktordelegasjon | Konstruktører og Destruktører
Quizzes & Challenges
Quizzes
Challenges
/
C++ OOP

bookKonstruktordelegasjon

Konstruktordelegasjon (også kalt konstruktorkjeding eller videresending) gjør det mulig for én konstruktør å kalle en annen innenfor samme klasse for å gjenbruke felles initialiseringslogikk.

Syntaks for konstruktordelegasjon

Konstruktordelegasjon brukes vanligvis innenfor syntaksen til en initialiseringsliste. Det innebærer bruk av kolon (:)-operatoren, etterfulgt av konstruktøren du ønsker å delegere til, og deretter eventuelle ekstra argumenter eller parametere som må sendes videre.

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

Å bruke initialiseringslister for konstruktordelegasjon er ikke påkrevd, men det er generelt anbefalt for klarhet og ytelse. Om nødvendig kan du kalle en overbelastet konstruktør fra en annen 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
Merk

Potensiell uendelig rekursjon kan oppstå ved bruk av konstruktordelegasjon. Sørg for at konstruktørene er strukturert slik at rekursive kall unngås.

Konstruktordelegasjon gir flere fordeler i objektorientert programmering og er praktisk å bruke, til tross for eventuell innledende kompleksitet de kan virke å ha.

question mark

Hva er konstruktordelegasjon?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 5

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Suggested prompts:

Can you give an example of constructor delegation in code?

What are the main benefits of using constructor delegation?

Are there any limitations or pitfalls to constructor delegation?

bookKonstruktordelegasjon

Sveip for å vise menyen

Konstruktordelegasjon (også kalt konstruktorkjeding eller videresending) gjør det mulig for én konstruktør å kalle en annen innenfor samme klasse for å gjenbruke felles initialiseringslogikk.

Syntaks for konstruktordelegasjon

Konstruktordelegasjon brukes vanligvis innenfor syntaksen til en initialiseringsliste. Det innebærer bruk av kolon (:)-operatoren, etterfulgt av konstruktøren du ønsker å delegere til, og deretter eventuelle ekstra argumenter eller parametere som må sendes videre.

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

Å bruke initialiseringslister for konstruktordelegasjon er ikke påkrevd, men det er generelt anbefalt for klarhet og ytelse. Om nødvendig kan du kalle en overbelastet konstruktør fra en annen 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
Merk

Potensiell uendelig rekursjon kan oppstå ved bruk av konstruktordelegasjon. Sørg for at konstruktørene er strukturert slik at rekursive kall unngås.

Konstruktordelegasjon gir flere fordeler i objektorientert programmering og er praktisk å bruke, til tross for eventuell innledende kompleksitet de kan virke å ha.

question mark

Hva er konstruktordelegasjon?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 5
some-alt