| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > задача на собеседовании |
| Автор: Paspartu 18.6.2010, 20:19 |
| Доброго времени суток! Вот получил такую задачу: //******************************************************************************************************* Есть классы C1, С2, С3..... СN с функциями F1, F2, F3, ..... , FN Прототипы функций могут быть разными(максимальный набор параметров = 2 штуки, типы параметров неизвестны) Задача: 1. Организовать контейнер, элементами которого будут пары: один из экземпляров класса Cx и одна из функций Fx 2. Написать цикл, который пробегается по элементам контейнера и вызывает нужные методы (параметры этих функций задаются на этапе добавления объекта в контейнер) соответствующих экземпляров класса Ограничения: Нельзя использовать bost, qt, можно только stl Метод четкого вызова функций путем case, if - применять нельзя Напрямую рассчитывать адрес вызываемой функции нельзя Дополнение: Использует один человек, разрабатывает контейнер другой человек (он ничего не знает ни о классах C ни о возможном количестве функций F и их параметров) //******************************************************************************************************* Помогите, перевести ее на русский язык… 1. Не могу понять функции F1, F2, F3, ..... , FN это члены класса или как? Просто мне интересно, как ее помете вы… |
| Автор: Paspartu 18.6.2010, 20:55 |
| 1. Организовать контейнер, элементами которого будут пары: один из экземпляров класса Cx и одна из функций Fx - вроде Fx - не является членном класса, НО! 2. Написать цикл, который пробегается по элементам контейнера и вызывает нужные методы (параметры этих функций задаются на этапе добавления объекта в контейнер) соответствующих экземпляров класса - если опустить то что в скобках получаем: Написать цикл, который пробегается по элементам контейнера и вызывает нужные методы соответствующих экземпляров класса - выходит что они являются членнами класса! Или я туплю... |
| Автор: Abyx 18.6.2010, 21:57 | ||
| если речь о С++0х, то там в stl есть function и bind если речь о С++98, то пишем их сами Добавлено @ 22:09
|
| Автор: Paspartu 19.6.2010, 15:46 |
| Abyx, спасибо, но у тебя в результате получился вектор указателей, а исходя из условия задачи в векторе(контейнере) должен жить сам объект... возможно ли запихнуть в вектор объекты разных классов? Или возможно ли инстанцировать вектор шаблоном? т.е. изночально создать некую шаблонную структуру в которой будет сам объект, указатель на его функцию и параметры, затем эту структуру запихивать в вектор? |
| Автор: borisbn 19.6.2010, 18:39 |
| Stl-контейнеры не могут хранить объекты типов, которые нельзя привести друг к другу. Ключевым словом в задании является: "Организовать" (читай "создать", "разработать") контейнер ... P.S. IMHO тут ни boost ни Qt не помогут |
| Автор: bsa 19.6.2010, 21:46 | ||
Это можно сделать сделав свой аналог std::list, элементами которого будут объекты шаблонного класса, наследника от базового элемента:
|