Форум: "Основная";
Текущий архив: 2004.06.06;
Скачать: [xml.tar.bz2];
ВнизШаблоны классов Найти похожие ветки
← →
ПсихЪ_клон (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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.037 c