Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Mikä on luokan destruktori | Konstruktorit ja Destruktorit
C++ OOP
course content

Kurssisisältö

C++ OOP

C++ OOP

1. C++:n OOP:n Perusteet
2. Konstruktorit ja Destruktorit
3. Kapseloinnin Yleiskatsaus
4. Perinnän Yleiskatsaus
5. Polymorfismin Yleiskatsaus

book
Mikä on luokan destruktori

Note
Määritelmä

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

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 }
  • 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

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. Mikä on destruktorin ensisijainen tarkoitus?

2. Mikä on destruktorin määrittelyn syntaksi?

question mark

Mikä on destruktorin ensisijainen tarkoitus?

Select the correct answer

question mark

Mikä on destruktorin määrittelyn syntaksi?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 7

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

course content

Kurssisisältö

C++ OOP

C++ OOP

1. C++:n OOP:n Perusteet
2. Konstruktorit ja Destruktorit
3. Kapseloinnin Yleiskatsaus
4. Perinnän Yleiskatsaus
5. Polymorfismin Yleiskatsaus

book
Mikä on luokan destruktori

Note
Määritelmä

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

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 }
  • 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

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. Mikä on destruktorin ensisijainen tarkoitus?

2. Mikä on destruktorin määrittelyn syntaksi?

question mark

Mikä on destruktorin ensisijainen tarkoitus?

Select the correct answer

question mark

Mikä on destruktorin määrittelyn syntaksi?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 7
some-alt