Главная страница
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.054 c
4-1082231415
Shopot
2004-04-17 23:50
2004.06.06
Сообщения Windows.


6-1082059289
fatman
2004-04-16 00:01
2004.06.06
TServerSocket внутри NT- сервиса


14-1085135078
Murkt
2004-05-21 14:24
2004.06.06
Нужна инфа


4-1083050775
luka
2004-04-27 11:26
2004.06.06
Сообщения


3-1084799822
V'ent
2004-05-17 17:17
2004.06.06
Компонент DBGridEh