C++ Как пробежаться по всем экземплярам класса?

0000

Че в классе надо добавить, чтобы потом можно было сделать что то в духе. Ну и как вообще то можно реализовать?
P.S. Ну как Enum что ли... вообщем даже не знаю что посмотреть.
P.P.S. И махонький пример, если можно.

nawok

Все элементы класса одного типа?

0000

Да вообще самый простой случай

Landstreicher

По всем членам класса? Или по всем экземплярам класса? Что такое элементы класса?

nawok

Я так понял, что все элементы класса (переменные) нужно загнать в один массив

0000

Экземплярам (блин не подумал про члены - про это вроде пример в MSDN видел)

Landstreicher

Сделать глобальный список (массив, хэш — по вкусу) указателей на объекты. В конструкторе класса добавлять в него элемент, в деструкторе --- удалять. Затем просто пробегать по этому списку.

0000

То есть при пробегании смотреть является л элемент массива NULL или нет (в этом случае обрабатываем элемент класса). Я так думал сделать, тока что то мне казалось можно как то попроще

Flack_bfsp

Зачем массив? Список.

0000

А пример можно?

0000

Усе - не нада - через массив сделал - оказалось проще, чем я думал

Flack_bfsp

Ботай СТЛ. Пригодится в жизни.

0000

Пригодиться - это можно все что угодно ботать.
Блин, вообщем понял, что не то сделал киньке кто нить пример, а? плз
Чуть подробнее: имеется класс. Хочу что бы можно было делать add_object, delete_object и цикл по всем элементам класса. Все совсем примитивно, но поскольку С хреново знаю - никак не могу придумать как сделать

yolki

что-то типа:

...
class MyClass
{
private:
static std::list<MyClass> MyInstances;
public:
MyClass; //
~MyClass; //
int run_through_instances(void (*CallerMyClass*;
};
...
MyClass::MyClass
{
MyInstances.push_front(this);
...
}
MyClass::~MyClass
{
MyInstances.remove(this);
...
}
...
int MyClass::run_through_instances(void (*CallerMyClass*
{
// здесь что-нить типа for_each для MyInstances
}

// яйцими не кидать, плюсов не знаю, STL тем боле
Оставить комментарий
Имя или ник:
Комментарий: