![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
Вообщем дело было так
Есть абстрактный класс файла, с двумя виртуальными функциями: сохранения и загрузки. Создаю два класса потомка "a" & "b", у которых перегружаю эти функции. Теперь мне нужно чтобы файлы допустим с расширением *.a грузились через метод класса "а", а "*.b" - через класс "b" и в некий общий список добавлялся объект необходимого типа (ну реализовать это можно через список указателей родительского класса). Вопрос: как это сделать? У меня только пол мысли есть: создать класс, который просматривает входящие файлы, получает их расширение и в зависимости от него будет добавлять объект типа класс "а" или "b". Вся фигня: как мне сопоставить класс и строку? Т.е. не объект типа класс, а именно класс, чтобы потом использовать его для добавления соответствующего объекта? Заранее список потомков неизвестен. Это сообщение отредактировал(а) Rickert - 15.10.2009, 08:51 -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Я что-то путаю или тебе нужен шаблон проектирования `фабрика`?
http://forum.vingrad.ru/forum/topic-266893...tml#st_0_view_0 Добавлено через 2 минуты и 47 секунд что-то вроде этого.
|
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
Да, примерно это, но меня смущает что приходиться хранить экземпляр объекта чтобы мочь вызвать функцию его создания. Надо подумать. Спасибо.
solved -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Rickert
Ну кто-то же должен создавать этот объект |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
Да, хорошо, мне нравится решение, хотя ошибачно думалось что у вас есть лишний код.
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |