|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.03.2013, 17:25 | #1 |
Пользователь
Регистрация: 10.03.2009
Сообщений: 15
|
Как создать метод класса, возвращающий объекты (поля класса) разных типов
Есть несколько классов
1. Родительский класс 2. Два дочерних класса 3. Класс содержащий в качестве полей оба дочерних от родительского класса, а также флаг определяющий какой из дочерних классов нужен в данном экземпляре. Проблема в следующем, хочется написать функцию которая в зависимости от флага возвращала бы нужный объект. Поискав в инете нашёл тип variant, однако так и не нашёл как сделать так, чтобы в него можно было записывать объект. для теста использовал следующий код: Код:
Вопрос: Как можно записать в variant объект? Если это невозможно, то возможно ли разрешить поставленную задачу не прибегая к нетипизированным указателям? |
01.03.2013, 18:12 | #2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Обобщенным типом называется это(Generics). g00gL в помощь.
|
01.03.2013, 18:36 | #3 |
Software Developer
Старожил
Регистрация: 19.12.2008
Сообщений: 2,070
|
Вместо
Код:
Код:
И для чего создавать объект, при этом в дальнейшем его не удалять, а затем переназначать ссылку на другой объект... Код:
Будь проще и люди к тебе потянутся
Последний раз редактировалось spamer; 01.03.2013 в 18:38. |
01.03.2013, 19:29 | #4 | |
Пользователь
Регистрация: 10.03.2009
Сообщений: 15
|
Человек_Борща, насколько я понял в случае использования Generic получится две функции (разные имена), только описанные одинаково, однако я хотел бы создавать массив объектов типа TNewClass, а результат функции GetNeededObj передавать перегружаемой функции. Однако, всё равно спасибо, так как при программировании на C++ знал как воспользоваться этой возможностью, а на delphi всё никак не находил.
spamer, насчёт Цитата:
Насчёт замены не понял, поля дочерних классов я так понимаю при возвращении просто пропадут? По крайней мере тест показывает что да. Всем Спасибо, понял как в конкретном, интересующем случае обойтись без этой конструкции. Последний раз редактировалось frosich; 01.03.2013 в 19:40. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Считать из файла объекты разных типов (C++) | whh | Помощь студентам | 1 | 26.11.2012 18:33 |
Доступ к полю класса из другого поля это класса | NaumOff | Общие вопросы Delphi | 10 | 09.10.2012 09:53 |
Ошибка при присвоении объекту производного класса объекта базового класса с исп. явного приведения типов | Lanx | Помощь студентам | 0 | 06.04.2011 20:24 |
ActionScript как создать метод класса? | Kn793 | JavaScript, Ajax | 0 | 15.07.2009 15:32 |
как связать поля разных типов | doncova1 | Microsoft Office Access | 5 | 11.03.2008 00:15 |