Kurssisisältö
C++ OOP
C++ OOP
Mikä on luokan destruktori
Destruktorit ovat erityisiä jäsenfunktioita, jotka kutsutaan, kun object's
elinkaari päättyy. Niiden ensisijainen tarkoitus on vapauttaa resurssit, jotka olio on saattanut varata elinkaarensa aikana.
Destruktorin syntaksi
Vaikka niiden tarkoitukset ovat vastakkaiset, destruktorin luominen on hyvin samanlaista kuin konstruktorin luominen. Niillä on lähes samat määrittelyperiaatteet. Yleinen tapa luoda destruktori on:
Nimi: sillä on sama nimi kuin luokalla, mutta sen edessä on tilde (
~
);Ei paluuarvotyyppiä: sillä ei ole paluuarvotyyppiä, ei edes void;
Ei parametreja: se ei voi ottaa parametreja;
Automaattinen kutsu: kääntäjä kutsuu sitä automaattisesti, kun olio poistuu näkyvistä tai se poistetaan eksplisiittisesti.
Destruktorien automaattinen kutsuminen
Destruktorien automaattisella kutsumisella tarkoitetaan destruktorin automaattista suorittamista. Tämä varmistaa, että olion hallussa olevat resurssit vapautetaan asianmukaisesti, mikä auttaa ehkäisemään muisti- ja resurssivuotoja.
scope.cpp
delete.cpp
termination.cpp
int main() { { Example obj; // Object created } // Object goes out of scope here, destructor is invoked }
kun olio poistuu näkyvistä;
kun
delete
-operaattoria käytetään dynaamisesti varattujen olioiden poistamiseen;kun ohjelma päättyy.
Destruktorin tarve
Destruktorin ensisijainen tarkoitus on vapauttaa resurssit, jotka olio on varannut elinkaarensa aikana. Tämä sisältää esimerkiksi tiedostokahvojen sulkemisen, muistin vapauttamisen (käyttäen new
) tai vastaavat tehtävät.
ResourceHolder.cpp
FileHandler.cpp
class ResourceHolder { public: DynamicArray(int size) { data = new int(100); } ~DynamicArray() { delete data; } private: int* data; };
1. Mikä on destruktorin ensisijainen tarkoitus?
2. Mikä on destruktorin määrittelyn syntaksi?
Kiitos palautteestasi!