Главная страница
    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.037 c
1-1085416989
opium
2004-05-24 20:43
2004.06.06
Проблема с потоком!


1-1085246172
GGREED
2004-05-22 21:16
2004.06.06
MS WORLD


6-1082358148
djordj
2004-04-19 11:02
2004.06.06
Как отправить email в HTML формате с картинками


14-1085062009
Копир
2004-05-20 18:06
2004.06.06
Израиль мало-помалу забывает свою историю.


6-1082269565
Mim1
2004-04-18 10:26
2004.06.06
Как избежать повления окна подключения к сети в win xp?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский