mastar1
20.11.04, 14:21
mam programik ktory przechowuje w liscie STLowej obiekty zawierające pola prywatne obiektow roznych klas. w glownej nadklasie jest publiczne pole zawierajace nazwe. lista STL jest zdefiniowana w klasie 'listy' i przechowywana w obiekcie 'l'. teraz chcialbym usuwac z tej listy obiekty o konkretnych polach 'nazwa'. napisalem cos takiego (co intuicyjnie powinno dzialac wg mnie) :
printf("\njaki obiekt zamierzasz usunac?\n");
printf("podaj nazwe elektrowni: ");
scanf("%s",nazwaE);
list<wodne>::iterator iterW;
for (iterW = l.listawodnych.begin(); iterW != l.listawodnych.end();iterW++)
if (strcmp((*iterW).nazwa,nazwaE) == 0)
{
l.listawodnych.remove((*iterW));
return;
}
ale wyskakuje kilka bledow. raz ze nie ma dostepu do pola nazwa (przypominam ze ono jest publiczne) i drugi : no match for `wodne & == const wodne &'.
zastanawiam sie czy w ogole mozna cale obiekty usuwac, czy np trzebaby napisac usuwanie ze wszystkich klas poszczegolnych pol i dopiero pozniej likwidowac obiekt jako wskaznik..