Ciao a tutti,
ho da poco iniziato il corso di Algoritmi e Strutture Dati e in laboratorio stiamo iniziando a programmare in C++.
E' tutto molto semplice, ma una cosa mi ha lasciato un dubbio. Nell'ultima lezione sono stati trattati i Costruttori e i Distruttori.
Ho dei dubbi sui distruttori che appunto hanno il compito di liberare l'area di memoria occupata dall'oggetto una volta terminato il programma.
Il prof ci ha mostrato questo codice molto semplice:
#include <iostream>
using namespace std;
class Coppia
{
double x;
double y;
public:
Coppia(const double x0, const double y0) { x = x0; y = y0; }
Coppia(const Coppia& A) { x = A.x; y = A.y; }
Coppia() {x=0; y=0;}
void show() { cout << x << " " << y << endl ; }
~Coppia() { cout<<“Ho finito (”<<x <<“) (”<< y<<“)”<<endl; }
} ;
int main()
{
Coppia c1 (13.4,2.7);
Coppia c2 = c1;
Coppia c3;
c1.show();
c2.show();
c3.show();
return 0;
}
Ci sono i tre diversi tipi di costruttori e infine il distruttore con all'interno una cout con un messaggio di avviso.
I miei due dubbi sono questi:
1) come faccio a stampare il messaggio presente nel distruttore?
2) il distruttore viene utilizzato automaticamente oppure ci deve essere una chiamata all'interno del main per far si che l'area di memoria venga liberata?
Grazie per eventuali risposte.