|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
26.10.2011, 15:26 | #1 |
Регистрация: 07.07.2011
Сообщений: 6
|
Объекты разных классов в динамическом списке
Приветствую товарищи! Возникла проблема: никак не могу додуматься как реализовать хранение объектов разных классов в одном списке, с возможностью добавления, удаления и просмотра информации об объекте по номеру в списке... Думаю может как нибудь прикрутить STL? Во только разве там возможно создание векторных списков для объектов разных классов?...
Код:
Последний раз редактировалось Stilet; 27.10.2011 в 08:35. |
26.10.2011, 15:35 | #2 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Виртуальные функции и std::list<Figure*> спасут отца русской демократии.
|
26.10.2011, 15:55 | #3 | |
Регистрация: 07.07.2011
Сообщений: 6
|
Цитата:
То есть в Абстрактном классе задать все функции виртуальными, таким образом чтобы в момент инициализации объекта они определялись? А данные класса и функции каким образом пихаются туда? я не силён в виртуальных функциях ... |
|
26.10.2011, 16:10 | #4 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Если в базовом классе объявить метод как virtual, то при вызове его по указателю вызовется вариант, соответствующий типу объекта, а не указателя (динамический полиморфизм).
Код:
|
26.10.2011, 17:29 | #5 | |
Регистрация: 07.07.2011
Сообщений: 6
|
Цитата:
|
|
26.10.2011, 17:40 | #6 | |
Форумчанин
Регистрация: 01.07.2011
Сообщений: 423
|
Цитата:
Со мной можно встретиться на www.clipper.borda.ru
|
|
26.10.2011, 17:44 | #7 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Цитата:
Код:
|
|
26.10.2011, 17:45 | #8 |
Форумчанин
Регистрация: 01.07.2011
Сообщений: 423
|
Не забудьте деструктор базового класса объявить виртуальным. Фактически, вам достаточно сделать деструктор чисто виртуальным, чтобы ваш класс был абстрактным. Например,
Код:
Со мной можно встретиться на www.clipper.borda.ru
|
26.10.2011, 20:16 | #9 |
Регистрация: 07.07.2011
Сообщений: 6
|
|
26.10.2011, 20:27 | #10 |
Форумчанин
Регистрация: 01.07.2011
Сообщений: 423
|
Ну, во-первых, я вам ужеуказал,что чисто виртуальный деструктор обязан иметь определение в базовом классе. Что касается других функций, то почему вы не допускаете, что функция базового класса может иметь общий код для всех производных классов, которые они должны выполнять? Тем самым исключается дублирование кода.
Со мной можно встретиться на www.clipper.borda.ru
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сборщик мусора в динамическом списке | Homutova_Julia | Помощь студентам | 4 | 17.06.2011 19:09 |
Объекты классов, деструкторы, конструкторы | GerNick | Общие вопросы C/C++ | 18 | 15.03.2011 08:30 |
Строки разных цветов в списке. | AntiKaspersky | Общие вопросы .NET | 2 | 14.01.2011 12:42 |
Создание классов и использование объектов классов при написании программ в среде C++. | Frozen inside | Помощь студентам | 0 | 16.04.2009 23:18 |