|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
18.01.2012, 14:02 | #11 | |
Пользователь
Регистрация: 04.12.2011
Сообщений: 13
|
Цитата:
Отладчик в Dev C++ не шибко удачный, понадеялся на свою голову. По поводу приведения типов: А если классов-наследников несколько, то как реализовать этот момент по-человечески в функции ServTable::showall()? Просто, если я верно понимаю, Код:
Получается, нужно создавать функцию со switch(),например, для обработки различных классов-потомков? Последний раз редактировалось Archet; 18.01.2012 в 14:12. |
|
18.01.2012, 14:11 | #12 | |
Участник клуба
Регистрация: 18.10.2008
Сообщений: 1,409
|
Цитата:
а вот AddPack придется переделать... каждому наследнику придется добавить свой input-метод для ввода данных Осторожно! Стол... |
|
18.01.2012, 14:21 | #13 |
Пользователь
Регистрация: 04.12.2011
Сообщений: 13
|
А вот не совсем там все в порядке, как оказалось при тестировании.
Условие Код:
Код:
Спасибо огромное всем, участвовавшим в обсуждении. Без вашей помощи нашел бы ой как не скоро. |
18.01.2012, 15:13 | #14 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
Если тебе нужен именно список - значит это будет контейнер, который будет хранить данные по принципу связанного списка. (Лично я б поюзал STL) При этом, забудь о полиморфизме. Контейнер ничего не знает ни о каких полиморфах. Единственное - он должен хранить указатель заданного типа. И этот тип указателя - это указатель на базовый класс твоего будущего полиморфного семейства. При этом, контейнер только хранит указатели на реальные объекты. Но самостоятельно их не создаёт. Потому что, он не может прочитать мысли программиста, и догадаться какой же реальный объект должен быть создан. Дизайн кода может выглядеть вот так: Код:
Код:
Код:
Итого, общий дизайн кода может выглядеть так: Код:
Таким образом возникает контракт: каждый из полиморных объектов обязаны иметь метод Show() Что до самого контейнера: то он ожидает, что объекты имеют метод Show(), хотя ничего не знает о природе своих подопечных Последний раз редактировалось _Bers; 18.01.2012 в 15:16. |
|
18.01.2012, 16:08 | #15 |
Пользователь
Регистрация: 04.12.2011
Сообщений: 13
|
_Bers, спасибо за информацию к размышлению, буду разбираться.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Абстрактный базовый класс(задача) | friman134 | Общие вопросы C/C++ | 2 | 17.12.2011 21:51 |
АТД: Реализация списка с использованием указателей | Suslik963 | Помощь студентам | 1 | 17.11.2010 10:06 |
результат базовый класс и наследование | Пепел Феникса | Общие вопросы C/C++ | 1 | 21.09.2010 02:29 |
Создать базовый класс | sT1mfy | Общие вопросы Delphi | 3 | 11.06.2010 21:38 |
Вернут указатель на базовый класс | Crucian | Общие вопросы C/C++ | 2 | 08.11.2007 18:10 |