Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Hva Er En Destruktør I En Klasse | 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
Hva Er En Destruktør I En Klasse

Note
Definisjon

Destruktører er spesielle medlemsfunksjoner som blir kalt når et object's levetid avsluttes. Hovedformålet deres er å frigjøre ressurser som objektet kan ha tilegnet seg i løpet av sin levetid.

Syntaks for destruktør

Selv om de har motsatte formål, er det å lage en destruktør svært likt det å lage en konstruktør. De deler nesten de samme deklarasjonsprinsippene. Den generelle fremgangsmåten for å lage en er:

  • Navn: den har samme navn som klassen, men innledes med en tilde (~);

  • Ingen returtype: den har ingen returtype, ikke engang void;

  • Ingen parametere: den kan ikke ta noen parametere;

  • Automatisk kall: den kalles automatisk av kompilatoren når objektet går ut av scope eller eksplisitt slettes.

Automatisk kall av destruktører

Det automatiske kallet av destruktører refererer til den automatiske utførelsen av destruktøren. Dette sikrer at ressursene som holdes av objektet blir korrekt frigjort, og bidrar dermed til å forhindre minnelekkasjer og ressurslekkasjer.

scope.cpp

scope.cpp

delete.cpp

delete.cpp

termination.cpp

termination.cpp

copy
123456
int main() { { Example obj; // Object created } // Object goes out of scope here, destructor is invoked }
  • når et objekt går ut av omfang;

  • når delete-operatoren brukes for å slette dynamisk allokerte objekter;

  • når programmet avsluttes.

Behovet for destruktører

Hovedformålet med en destruktør er å frigjøre ressurser som objektet har anskaffet i løpet av sin levetid. Dette inkluderer å lukke filhåndtak, frigjøre minne (ved bruk av new) eller lignende oppgaver.

ResourceHolder.cpp

ResourceHolder.cpp

FileHandler.cpp

FileHandler.cpp

copy
123456789101112
class ResourceHolder { public: DynamicArray(int size) { data = new int(100); } ~DynamicArray() { delete data; } private: int* data; };

1. Hva er hovedformålet med en destruktør?

2. Hva er syntaksen for å erklære en destruktør?

question mark

Hva er hovedformålet med en destruktør?

Select the correct answer

question mark

Hva er syntaksen for å erklære en destruktør?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 7

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
Hva Er En Destruktør I En Klasse

Note
Definisjon

Destruktører er spesielle medlemsfunksjoner som blir kalt når et object's levetid avsluttes. Hovedformålet deres er å frigjøre ressurser som objektet kan ha tilegnet seg i løpet av sin levetid.

Syntaks for destruktør

Selv om de har motsatte formål, er det å lage en destruktør svært likt det å lage en konstruktør. De deler nesten de samme deklarasjonsprinsippene. Den generelle fremgangsmåten for å lage en er:

  • Navn: den har samme navn som klassen, men innledes med en tilde (~);

  • Ingen returtype: den har ingen returtype, ikke engang void;

  • Ingen parametere: den kan ikke ta noen parametere;

  • Automatisk kall: den kalles automatisk av kompilatoren når objektet går ut av scope eller eksplisitt slettes.

Automatisk kall av destruktører

Det automatiske kallet av destruktører refererer til den automatiske utførelsen av destruktøren. Dette sikrer at ressursene som holdes av objektet blir korrekt frigjort, og bidrar dermed til å forhindre minnelekkasjer og ressurslekkasjer.

scope.cpp

scope.cpp

delete.cpp

delete.cpp

termination.cpp

termination.cpp

copy
123456
int main() { { Example obj; // Object created } // Object goes out of scope here, destructor is invoked }
  • når et objekt går ut av omfang;

  • når delete-operatoren brukes for å slette dynamisk allokerte objekter;

  • når programmet avsluttes.

Behovet for destruktører

Hovedformålet med en destruktør er å frigjøre ressurser som objektet har anskaffet i løpet av sin levetid. Dette inkluderer å lukke filhåndtak, frigjøre minne (ved bruk av new) eller lignende oppgaver.

ResourceHolder.cpp

ResourceHolder.cpp

FileHandler.cpp

FileHandler.cpp

copy
123456789101112
class ResourceHolder { public: DynamicArray(int size) { data = new int(100); } ~DynamicArray() { delete data; } private: int* data; };

1. Hva er hovedformålet med en destruktør?

2. Hva er syntaksen for å erklære en destruktør?

question mark

Hva er hovedformålet med en destruktør?

Select the correct answer

question mark

Hva er syntaksen for å erklære en destruktør?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 7
some-alt