View Full Version : [C++]Costruttore e Distruttore Classe string
giovessj
07-07-2006, 11:08
Ragazzi volevo sapere se c'era qlkuno di buona volontà che mi dice cm si realizza un costruttore e un distruttore di una variabile di tipo string dichiarata in una classe....posto un esempio:
class Persona{
protected:
string nome;
string cognome;
public:
Persona();
Persona(string NOME="",string COGNOME=""){
nome=NOME;
cognome=COGNOME;
}
~Persona();
}
il costruttore penso si realizzi così ma il distruttore?????nel caso fosse stato char* nome andava bene( delete [] nome ) ma cn la classe string del c++ cm si fa???
trallallero
07-07-2006, 11:43
Ragazzi volevo sapere se c'era qlkuno di buona volontà che mi dice cm si realizza un costruttore e un distruttore di una variabile di tipo string dichiarata in una classe....posto un esempio:
class Persona{
protected:
string nome;
string cognome;
public:
Persona();
Persona(string NOME="",string COGNOME=""){
nome=NOME;
cognome=COGNOME;
}
~Persona();
}
il costruttore penso si realizzi così ma il distruttore?????nel caso fosse stato char* nome andava bene( delete [] nome ) ma cn la classe string del c++ cm si fa???
a parte che puoi assegnare direttamente le variabili cosí:
class Persona
{
protected:
string nome;
string cognome;
public:
Persona( string NOME, string COGNOME ) :
nome (NOME) ,
cognome(COGNOME)
{
...
};
~Persona();
}
poi il distruttore di nome e cognome non ti serve perché sono variabili
automatiche ;)
giovessj
07-07-2006, 11:51
ahh ok quindi qndo utilizzo variabili automatiche tipo string il distruttore nn va implementato???cioè a sto punto posso anke nn specificarlo xkè tanto viene richiamato di default dal compilatore giusto??
trallallero
07-07-2006, 12:17
ahh ok quindi qndo utilizzo variabili automatiche tipo string il distruttore nn va implementato???cioè a sto punto posso anke nn specificarlo xkè tanto viene richiamato di default dal compilatore giusto??
viene chiamato il distruttore di default, quello della classe string.
Se tu crei una classe derivata da string crei il tuo distruttore che
fa quello che ti serve, ma tieni conto che non ti serve distruggere
gli oggetti automatici.
Sarebbe come voler deallocare una variabile tipo:
int x;
;)
BountyKiller
07-07-2006, 13:08
ahh ok quindi qndo utilizzo variabili automatiche tipo string il distruttore nn va implementato???cioè a sto punto posso anke nn specificarlo xkè tanto viene richiamato di default dal compilatore giusto??
i membri non dinamici stanno nello stack quindi la memoria che occupano viene liberata quando l'istanza della classe va fuori scope... non devi fare nulla.... in ogni caso ti ricordo che il distruttore può anche essere richiamato espicitamente dal programmatore (ma questo non vale per i costruttori)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.