Il distruttore è sempre un metodo e viene chiamato quando un oggetto viene rilasciato dalla memoria, infatti serve per liberare lo spazio sulla memoria, deve avere lo stesso nome della classe preceduto dal carettere speciale ~, il distruttore è uno solo non necessitando di parametri. Come per il costruttore esiste un distruttore di default.
Di seguito un semplice esempio di uso di costrotturi e distruttori:
#include<iostream>
using namespace std;
class A{ //dichiaro una classe
//di defaukt gli attributi sono privati, cioè nn accessibile dall'esterno
int c;
public: // con public rendo i metodi accessibili dall'esterno
A(); // costruttore
A(int a);
A(float a);
~A(); // distruttore
void stampa(); //dichiaro un metodo
};
void A::stampa() //definizione sterna del metodo stampa
{
cout << c;
}
A::A(int a)//inizializzo c con il costruttore
{
cout << "sono int"<<a;
}
A::A(float a)//inizializzo c con il costruttore
{
cout << "\nsono float"<<a;
}
A::A()//inizializzo c con il costruttore
{
cout << "eseguo costruttore \n";
}
A::~A()// liberiamo la memoria occupata dall'oggetto
{
cout << "eseguo distruttore\n";
}
main() //corpo
{
//dichiarazione di un oggetto
//B.c; error 'int A::C is private'
A stampa(5);//notazione puntata per raggiungere il metodo nell'oggetto
A stampa1((float)1.5);
A stampa2;
return 0;
}
Provando ad eseguire il programma si noterà quando il costruttore e il distruttore vengono chiamati.
Nessun commento:
Posta un commento