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
C++ OOP
course content

Kursinnhold

C++ OOP

C++ OOP

1. Grunnleggende om OOP i C++
2. Konstruktører og Destruktører
3. Oversikt Over Innkapsling
4. Oversikt over Arv
5. Oversikt over Polymorfisme

book
Konstruktordelegasjon

Konstruktordelegasjon (også kalt konstruktorkjedning 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

course content

Kursinnhold

C++ OOP

C++ OOP

1. Grunnleggende om OOP i C++
2. Konstruktører og Destruktører
3. Oversikt Over Innkapsling
4. Oversikt over Arv
5. Oversikt over Polymorfisme

book
Konstruktordelegasjon

Konstruktordelegasjon (også kalt konstruktorkjedning 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