Можно ли использовать std :: for_each или что-то еще подобное?
Как использовать std :: for_each?
#include <list>
#include <algorithm>
// Class declaration
//
struct Interface
{
virtual void run() = 0;
};
struct A : public Interface
{
void run() { std::cout << "I run class A" << std::endl; }
};
struct B : public Interface
{
void run() { std::cout << "I run class B" << std::endl; }
};
// Main
//
int main()
{
// Create A and B
A a;
B b;
// Insert it inside a list
std::list<Interface *> list;
list.push_back(&a);
list.push_back(&b);
// Then execute a func with for_each without recreate a func which call Interface::run()
std::for_each(list.begin(), list.end(), run);
return 0;
}
Edit: Мой вопрос: Как я могу позвонить каждый запустить() функцию-член внутри цикла с использованием алгоритма или более просто C++ пути без использования итератора ...
'ИНТЕРФЕЙС = новый A; 'Это даже не компилируется. Что именно вы пытаетесь сделать? –
Здесь нет никаких вопросов –
Извините, я написал небольшой код, чтобы показать только то, что я хочу сделать. В основном я хочу вызвать функцию-член, выполняемую внутри цикла, используя for_each или что-то еще. Я знаю, что могу использовать итератор, но я спрашиваю себя, есть ли другой способ. – klefevre