|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.01.2014, 04:59 | #1 |
Пользователь
Регистрация: 26.03.2013
Сообщений: 25
|
Шаблоны
Всем доброго времени суток. Есть ли способ скормить компилятору Delphi XE вот такую конструкцию:
Код:
Последний раз редактировалось _Freak_; 09.01.2014 в 05:06. |
09.01.2014, 11:06 | #2 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Что это за объявление?
Код:
Цитата:
Далее, явно наследуйте TObject, иначе компилятор сделает это за вас в любом случае. |
|
09.01.2014, 13:16 | #3 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,885
|
Человек_Борща, полагаю, что это ограничение на параметр типа - только определённые сущности могут быть использованы в данном обобщении (на манер сишарпа думаю). Вот даже нашёл http://docwiki.embarcadero.com/RADSt...ts_in_Generics
Ну а у меня вопрос такой к автору - TMyClass = class(TSingleton<TMyClass>) Чем продиктовано это указание ? Чисто логически - непонятная рекурсия. Последний раз редактировалось phomm; 09.01.2014 в 13:48. |
10.01.2014, 01:25 | #4 |
Пользователь
Регистрация: 26.03.2013
Сообщений: 25
|
Всё правильно, это ограничение + гарантии для комплятора(class означает, что типом может быть только класс, а constructor говорит компилятору о том, что у этого класса есть конструктор без параметров и объявленный c public доступом. Как видите, все условия соблюдены.
Самое интересное, что вот так компилятор прожуёт: Код:
|
10.01.2014, 01:42 | #5 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
зачем синглтону публичный конструктор?
чтото не то в консерватории |
10.01.2014, 01:45 | #6 |
Пользователь
Регистрация: 26.03.2013
Сообщений: 25
|
Замечено верно, но это претензии к компилятору
Как писал в своём посте выше, constructor накладывает ограничения: конструктор класса должен быть открытым и звать его должны Create |
10.01.2014, 02:05 | #7 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Цитата:
ТС, в какой IDE программируете? С обобщенными даже в XE2 были большие проблемы) |
|
10.01.2014, 07:54 | #8 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,885
|
Ну, настолько плотно с обощениями не работал, показалось странным.
Также предложу работать с более поздней версией дельфи(у автора, я так понял, что ХЕ), где косяк (если он от дельфи) может быть уже пофикшен. Также предлагаю рассмотреть вот это: http://ins911.blogspot.ru/2008_12_01_archive.html Последний раз редактировалось phomm; 10.01.2014 в 08:38. |
10.01.2014, 09:40 | #9 | ||
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
Цитата:
Цитата:
|
||
10.01.2014, 14:02 | #10 | |
Пользователь
Регистрация: 26.03.2013
Сообщений: 25
|
Цитата:
Код:
Последний раз редактировалось _Freak_; 10.01.2014 в 15:04. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Шаблоны с++ | ftg | Помощь студентам | 0 | 25.12.2013 23:46 |
Шаблоны | К_С_Ю | Помощь студентам | 1 | 23.04.2012 22:05 |
Шаблоны | Romario92 | C++ Builder | 2 | 18.04.2011 19:46 |
Шаблоны С++ | Secc | Помощь студентам | 4 | 27.12.2009 17:35 |
Шаблоны C++ | Viamy | Помощь студентам | 0 | 27.12.2009 16:10 |