Ciao Shodan, Grazie intanto per avermi risposto..

adesso ti scrivo per intero il costruttore di copia:

codice:
Fattura::Fattura(const Fattura &f) 
{ nome=new char[strlen(f.nome)+1];     
   strcpy(nome, f.nome);     
   cognome=new char[strlen(f.cognome)+1];     
   strcpy(cognome, f.cognome);          
   iva=f.iva;               
prezzo.resize(f.prezzo.size());                                      
copy(f.prezzo.begin(), f.prezzo.end(), prezzo.begin());
quantita.resize(f.quantita.size());                                      
copy(f.quantita.begin(), f.quantita.end(), quantita.begin()); 
descrizione.resize(f.descrizione.size());                                      
copy(f.descrizione.begin(), f.descrizione.end(), descrizione.begin());
}
Per quanto riguarda i set, li faccio così:

codice:
void Fattura::setNome(char *n) 
{ nome=new char[strlen(n)+1];
  strcpy(nome, n); 
}  

void Fattura::setCognome(char *c)
{ cognome=new char[strlen(c)+1];
   strcpy(cognome, c); }   

void Fattura::setIva(float e) 
{   iva=e;  }
Ma quindi se avessi delle List al posto dei Vector il costruttore di copia sarebbe uguale?