Главная страница
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.064 c
6-1082287355
Орел Константин
2004-04-18 15:22
2004.06.06
Глюк с TServerSocket


1-1085636689
andruxa
2004-05-27 09:44
2004.06.06
3 вопроса от незнания. Элемент Static. Tpanel. Компилятор дельфи.


9-1075295877
chuckloon
2004-01-28 16:17
2004.06.06
Посмотрите на мою игрулю ASTROBALL.1.3


14-1085085937
тихий вовочка
2004-05-21 00:45
2004.06.06
Rentacoder


14-1084855157
Vlad Oshin
2004-05-18 08:39
2004.06.06
Научите, как узнать для чего и какая dll нужна в папках windows