Se posti codice, usa i tag CODE o si fa fatica a leggerlo.
Originariamente inviato da Angelo000
codice:
 
prezzo.resize(f.prezzo.size());                                
copy(f.prezzo.begin(), f.prezzo.end(), prezzo.begin());
A vedere queste righe il cctor è corretto. Occorre però vedere i char* (nome e cognome).
Se fossero std::string potresti quasi nemmeno scrivere il cctor.
Sotto.
Intanto come assegni in setNome() e setCognome le rispettive variabili?
Comunque ricorda che std::list non ha operator[] quindi dovresti cambiare il codice perché lavori con la funzione push_back() presente sia in std::vector sia in std::list.
codice:
istream &operator>>(istream &in, Fattura &r)
{
    
    char temp[100];
    int app, num;
    
    in>>temp;
    r.setNome(temp);
    in>>temp;
    r.setCognome(temp);
    
    in>>app;
    r.setIva(app); 
    
    in>>num;
    r.prezzo.resize(num);
    for(int i=0; i<num; i++){
       in>>r.prezzo[i]; 
    }       
    in>>num;
    r.quantita.resize(num);
    for(int i=0; i<num; i++){
       in>>r.quantita[i]; 
    } 
    in>>num;
    r.descrizione.resize(num);
    for(int i=0; i<num; i++){
       in>>(r.descrizione[i]); 
    }     
    
  	return in;
}
[/QUOTE]