Kursusindhold
C++ OOP
C++ OOP
Hvad Er en Destruktor for Klassen
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
delete.cpp
termination.cpp
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
FileHandler.cpp
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?
Tak for dine kommentarer!