Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.06;
Скачать: CL | DM;

Вниз

Шаблоны классов   Найти похожие ветки 

 
ПсихЪ_клон   (2004-05-24 09:14) [0]

Есть ли в Delphi аналог С++"нутых Шаблонов Классов.
А то у меня есть свой класс для организации ЛИСТА (работа с несколькими копиями какого-нибудь класса), но для его использования приходится много раз его размножать изменяя именя классов.
Или может есть другой способ сделать нечто подобное?


 
Думкин ©   (2004-05-24 09:19) [1]

Точнее сформулируй.
Стандартное в ООП не спасает?


 
Amoeba ©   (2004-05-24 13:19) [2]

Посмотри вот это:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=891


 
ПсихЪ_клон   (2004-05-24 13:50) [3]

Блин, ну куда уж конкретнее.
В С++ имеем:

template<class T> class p7List {
T Items;
p7List();
~p7List();
};


Затем инициализируем лист:

p7List<int> myIntList;
p7List<bool> myBoolList;


И не нужно для разных типов данных писать отдельный класс.
Так есть такая бойда в Delphi или нет?


 
Внук ©   (2004-05-24 13:57) [4]

Нет


 
ПсихЪ_клон   (2004-05-24 14:10) [5]

Плохо, а как быть, если не плодить ЧОЕНЬ похожие классы?


 
Внук ©   (2004-05-24 14:16) [6]

>>ПсихЪ_клон   (24.05.04 14:10) [5]
 Может, с нетипизированными указателями поработать? Или с метаклассами - TCollection тоже ведь один, а хранить может разные типы. Или сходить по указанной ссылке? Или...


 
ПсихЪ_клон   (2004-05-24 15:53) [7]

По указанной ссылке я ходил, только пока разбираться времени нет. Думал может чего по проще есть... Ладно, всем спасибо за ответы! Если найду решение, то обязательно поделюсь...


 
WebErr ©   (2004-05-24 16:37) [8]

Хех, у меня та же проблема была

> В С++ имеем:
>
> template<class T> class p7List {
> T Items;
наверное здесь public: :)))
> p7List();
> ~p7List();
> };

Всё просто:

p7List = class
private
  nSize: Integer; // обязательно размер памяти под указатель
  pItems: Pointer;
  function GetItem(Index: Integer): Pointer;
  procedure SetItem(Index: Integer; Value: Pointer);
public
  constructor Create(aSize: Integer); virtual;
  destructor Destroy; override;
published
  property Items[Index: Integer]: Pointer read GetItem write SetItem;
end;

:))))
Будут ещё проблемы с конвертацией С++ в Object Pascal - пиши!


 
WebErr ©   (2004-05-24 16:38) [9]

Ну то есть не published, а public. published Pointer"ов не любит!



Страницы: 1 вся ветка

Текущий архив: 2004.06.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.023 c
14-1085298070
Cerber
2004-05-23 11:41
2004.06.06
COM порты


4-1083079703
DoG
2004-04-27 19:28
2004.06.06
Закрыть окно !


4-1083737618
pavel_guzhanov
2004-05-05 10:13
2004.06.06
Список comm портов


1-1085291576
Cucumber
2004-05-23 09:52
2004.06.06
Как измерить маленький отрезок времени?


14-1082981756
AlexKniga
2004-04-26 16:15
2004.06.06
Чем посмотреть цепочки установленных хуков hook chain?