![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 26.03.2013
Сообщений: 25
|
![]()
Всем доброго времени суток. Есть ли способ скормить компилятору Delphi XE вот такую конструкцию:
Код:
Последний раз редактировалось _Freak_; 09.01.2014 в 05:06. |
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
![]()
Что это за объявление?
Код:
Цитата:
Далее, явно наследуйте TObject, иначе компилятор сделает это за вас в любом случае. |
|
![]() |
![]() |
![]() |
#3 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,883
|
![]()
Человек_Борща, полагаю, что это ограничение на параметр типа - только определённые сущности могут быть использованы в данном обобщении (на манер сишарпа думаю). Вот даже нашёл http://docwiki.embarcadero.com/RADSt...ts_in_Generics
Ну а у меня вопрос такой к автору - TMyClass = class(TSingleton<TMyClass>) Чем продиктовано это указание ? Чисто логически - непонятная рекурсия. Последний раз редактировалось phomm; 09.01.2014 в 13:48. |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 26.03.2013
Сообщений: 25
|
![]()
Всё правильно, это ограничение + гарантии для комплятора(class означает, что типом может быть только класс, а constructor говорит компилятору о том, что у этого класса есть конструктор без параметров и объявленный c public доступом. Как видите, все условия соблюдены.
Самое интересное, что вот так компилятор прожуёт: Код:
|
![]() |
![]() |
![]() |
#5 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
![]()
зачем синглтону публичный конструктор?
чтото не то в консерватории |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 26.03.2013
Сообщений: 25
|
![]()
Замечено верно, но это претензии к компилятору
![]() Как писал в своём посте выше, constructor накладывает ограничения: конструктор класса должен быть открытым и звать его должны Create |
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
![]() Цитата:
ТС, в какой IDE программируете? С обобщенными даже в XE2 были большие проблемы) |
|
![]() |
![]() |
![]() |
#8 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,883
|
![]()
Ну, настолько плотно с обощениями не работал, показалось странным.
Также предложу работать с более поздней версией дельфи(у автора, я так понял, что ХЕ), где косяк (если он от дельфи) может быть уже пофикшен. Также предлагаю рассмотреть вот это: http://ins911.blogspot.ru/2008_12_01_archive.html Последний раз редактировалось phomm; 10.01.2014 в 08:38. |
![]() |
![]() |
![]() |
#9 | ||
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
![]() Цитата:
Цитата:
|
||
![]() |
![]() |
![]() |
#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 |