Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Hvad Er en Destruktor for Klassen | 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
Hvad Er en Destruktor for Klassen

Note
Definition

Destruktorer er specielle medlemsfunktioner, der kaldes, når et object's levetid slutter. Deres primære formål er at frigive ressourcer, som objektet kan have erhvervet i løbet af dets levetid.

Syntaks for destruktor

Selvom de tjener modsatte formål, ligner oprettelsen af en destruktor meget oprettelsen af en konstruktør. De deler næsten de samme deklarationsprincipper. Den generelle tilgang til at oprette en er:

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

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

  • Ingen parametre: den kan ikke tage nogen parametre;

  • Automatisk kald: den kaldes automatisk af compileren, når objektet går ud af scope eller eksplicit slettes.

Automatisk kald af destruktorer

Det automatiske kald af destruktorer refererer til den automatiske udførelse af destruktøren. Dette sikrer, at ressourcer, som objektet har, frigives korrekt, hvilket hjælper med at forhindre hukommelseslækager og ressourcelækager.

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 ud af scope;

  • når operatoren delete bruges til at slette dynamisk allokerede objekter;

  • når programmet afsluttes.

Behovet for destruktorer

Det primære formål med en destruktor er at frigive ressourcer, som objektet har erhvervet i løbet af dets levetid. Dette inkluderer lukning af filhåndtag, frigivelse af hukommelse (ved brug af new) eller lignende opgaver.

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. Hvad er det primære formål med en destruktor?

2. Hvad er syntaksen for at erklære en destruktor?

question mark

Hvad er det primære formål med en destruktor?

Select the correct answer

question mark

Hvad er syntaksen for at erklære en destruktor?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 7

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
Hvad Er en Destruktor for Klassen

Note
Definition

Destruktorer er specielle medlemsfunktioner, der kaldes, når et object's levetid slutter. Deres primære formål er at frigive ressourcer, som objektet kan have erhvervet i løbet af dets levetid.

Syntaks for destruktor

Selvom de tjener modsatte formål, ligner oprettelsen af en destruktor meget oprettelsen af en konstruktør. De deler næsten de samme deklarationsprincipper. Den generelle tilgang til at oprette en er:

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

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

  • Ingen parametre: den kan ikke tage nogen parametre;

  • Automatisk kald: den kaldes automatisk af compileren, når objektet går ud af scope eller eksplicit slettes.

Automatisk kald af destruktorer

Det automatiske kald af destruktorer refererer til den automatiske udførelse af destruktøren. Dette sikrer, at ressourcer, som objektet har, frigives korrekt, hvilket hjælper med at forhindre hukommelseslækager og ressourcelækager.

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 ud af scope;

  • når operatoren delete bruges til at slette dynamisk allokerede objekter;

  • når programmet afsluttes.

Behovet for destruktorer

Det primære formål med en destruktor er at frigive ressourcer, som objektet har erhvervet i løbet af dets levetid. Dette inkluderer lukning af filhåndtag, frigivelse af hukommelse (ved brug af new) eller lignende opgaver.

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. Hvad er det primære formål med en destruktor?

2. Hvad er syntaksen for at erklære en destruktor?

question mark

Hvad er det primære formål med en destruktor?

Select the correct answer

question mark

Hvad er syntaksen for at erklære en destruktor?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 7
some-alt