Как в generic сослатся на его будущий тип?

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Как в generic сослатся на его будущий тип?

Сообщение AbakAngelSoft » 22.02.2009 00:22:49

Пример кода:
Код: Выделить всё
type
  { GPat }
  generic GPat<ItemType> = class(TObject)
  public
    procedure Assign(APat: <SelfType>);
  end;

type
  TMyPat = specialize GPat<TObject>;


и где-то далее

Код: Выделить всё
var
  Pat1, Pat2: TMyPat;
begin
  Pat1.Assign(Pat2);


Что писать вместо <SelfType>?
Аватара пользователя
AbakAngelSoft
постоялец
 
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар

Re: Как в generic сослатся на его будущий тип?

Сообщение hinst » 04.03.2009 22:18:20

доки по фпц тебе в руки... там всё подробно написано
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Re: Как в generic сослатся на его будущий тип?

Сообщение Дож » 04.03.2009 23:43:53

AbakAngelSoft писал(а):Пример кода:
Код: Выделить всё
type
  { GPat }
  generic GPat<ItemType> = class(TObject)
  public
    procedure Assign(APat: <SelfType>);
  end;
type
  TMyPat = specialize GPat<TObject>;

и где-то далее
Код: Выделить всё
var
  Pat1, Pat2: TMyPat;
begin
  Pat1.Assign(Pat2);

Что писать вместо <SelfType>?


Если судить по документации (2.2.2), то этого сделать нельзя - обобщение не может быть типом данных. Будем надеяться, что в будущих версиях такой функционал появится.
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru