У меня есть класс с именем «block», который наследуется от класса с именем «MainObject».Вызов дочернего объекта в списке
Затем я создал список и добавлю «блок». Также я использую итератор для цикла;
std::list<MainObject> objList;
objList.push_back(block());
std::list<MainObject>::iterator p = objList.begin();
Но когда я думал о списке, я могу назвать функцию MainObject. Это моя Петля
for (p = objList.begin(); p != objList.end(); p++){
p->Update();
}
Когда вы повторяете свой 'objList', как вы узнаете, имеете ли вы дело с блоком или с объектом MainObject? Если вам нужен список блоков, почему бы не объявить список как таковой? 'std :: list'. Вам нужно предоставить еще несколько контекстов. –
Julian
Это потому, что я хочу добавить в список больше типов объектов. У всех объектов есть функция Update, которая должна быть вызвана каждым фреймом. – SaschaDeWaal
Ответ Мэтта ниже должен делать то, что вам нужно. Обратите внимание, что в случае, если 'MainObject' имеет ** виртуальный **' Update' метод, литье больше не требуется, и вы можете просто сделать 'p-> Update()'. – Julian