Witam, mam listę obiektów (wskaźników) i chciałbym na każdym z nich wywołać metodę.
Niestety nie potrafię tego zrobić. Oto kod:
#include <iostream>
#include <list>
using namespace std;
class Klasa
{
public:
void foo()
{
cout<<"MHM"<<endl;
}
};
int main()
{
list <Klasa*> lista;
for(int i = 0;i<10;i++)
{
Klasa *temp = new Klasa;
lista.push_back(temp);
}
for(list<Klasa*>::iterator i = lista.begin();i != lista.end();i++)
*i //! ->foo(); tutaj jest ten problem, bo nie wiem jak to połączyć
;return 0;
}
Lecz żeby nie było, że sam nie kombinuję to wymyśliłem takie rozwiązanie:
Klasa* t;
for(list<Klasa*>::iterator i = lista.begin();i != lista.end();i++)
t = *i;
t->foo();
Ale myślę, że można by to zrobić prościej więc proszę o pomoc.