PDA

View Full Version : [C++] errore con iteratori


dierre
18-10-2005, 20:18
Salve, ho questi problemi:

dipendente* tmp;
switch(h){
case 1:{tmp=new operaio(a,b,c,d,e,f);
schede.push_back(tmp);
break;};
case 2:{tmp=new dirigente(a,b,c,d,e);
schede.push_back(tmp);
break;};
}
note: h è un int;
operaio e dirigente ereditano da dipendente;

e

void schedario::leggiTutti(){list<dipendente*>::iterator i;
for(i=schede.begin(); i=!schede.end(); i++;) {(*i).leggiDip(cout);}}
note: la dichiarazione di schede è list<dipendente*> schede;



per la prima roba ho questi errori di compilazione che non so come correggere:

c:\documents and settings\dierre\documenti\esercizi\c++\sched\schedario.cpp:10: parse error before `('

c:\documents and settings\dierre\documenti\esercizi\c++\sched\schedario.cpp:13: parse error before `('

nella riga di case 1 e nella riga di case 2


per la seconda ho questi errori:

c:\documents and settings\dierre\documenti\esercizi\c++\sched\schedario.cpp:20: no match for `!_List_iterator<dipendente *,dipendente *&,dipendente **>'

c:\documents and settings\dierre\documenti\esercizi\c++\sched\schedario.cpp:20: candidates are: operator !(bool) <builtin>

c:\documents and settings\dierre\documenti\esercizi\c++\sched\schedario.cpp:20: request for member `leggiDip' in `i._List_iterator<dipendente *,dipendente *&,dipendente **>::operator *()', which is of non-aggregate type `dipendente *'



per favore potreste aiutarmi a risolvere l'enigma?

dierre
18-10-2005, 21:21
allora il primo è risolto, avevo dimenticato un include -.-

per il secondo gli aiuti sono ancora richiesti asd

dierre
19-10-2005, 10:23
iuppi

cionci
19-10-2005, 10:42
Cosa noti ?

i=!schede.end()

dierre
19-10-2005, 11:20
eh ma ieri sera ero in vena di scrivere stronzate evidentemente...


edit: grazie, era l'ultimo pezzo di codice che avevo scritto ieri sera, evidentemente mi si incrociavano gli occhi :asd: