Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.027 c
14-1084807022
Анонимщик
2004-05-17 19:17
2004.06.06
Энциклопедия шахматных дебютов.


3-1084647141
download
2004-05-15 22:52
2004.06.06
Редактирование БД после сортировки


14-1084739595
VID
2004-05-17 00:33
2004.06.06
Html-таблица + Excel + VBA.... доступ к html-объектам.


1-1085546834
Анатолий
2004-05-26 08:47
2004.06.06
Блокирование файлов как винда блокирует некоторые свои


3-1084790237
Klerk
2004-05-17 14:37
2004.06.06
Почему он не находит поле?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский