Kursinnehåll
C++ OOP
C++ OOP
Vad är en destruktor för klassen
Destruktorer är speciella medlemsfunktioner som anropas när ett object's
livslängd tar slut. Deras huvudsakliga syfte är att frigöra resurser som objektet kan ha tagit i anspråk under sin livstid.
Syntax för destruktor
Även om de har motsatta syften är det mycket likt att skapa en destruktor som att skapa en konstruktor. De delar nästan samma deklarationsprinciper. Det allmänna tillvägagångssättet för att skapa en är:
Namn: den har samma namn som klassen, men föregås av en tilde (
~
);Ingen returtyp: den har ingen returtyp, inte ens void;
Inga parametrar: den kan inte ta några parametrar;
Automatiskt anrop: den anropas automatiskt av kompilatorn när objektet går ur scope eller explicit tas bort.
Automatisk anrop av destruktorer
Det automatiska anropet av destruktorer syftar på att destruktorn anropas automatiskt. Detta säkerställer att resurser som hålls av objektet frigörs korrekt, vilket hjälper till att förhindra minnesläckor och resursläckor.
scope.cpp
delete.cpp
termination.cpp
int main() { { Example obj; // Object created } // Object goes out of scope here, destructor is invoked }
när ett objekt går ur sitt omfång;
när operatorn
delete
används för att ta bort dynamiskt allokerade objekt;när programmet avslutas.
Behovet av destruktorer
Det primära syftet med en destruktor är att frigöra resurser som objektet har förvärvat under sin livstid. Detta inkluderar att stänga filhandtag, frigöra minne (med new
) eller liknande uppgifter.
ResourceHolder.cpp
FileHandler.cpp
class ResourceHolder { public: DynamicArray(int size) { data = new int(100); } ~DynamicArray() { delete data; } private: int* data; };
1. Vad är det primära syftet med en destruktor?
2. Vad är syntaxen för att deklarera en destruktor?
Tack för dina kommentarer!