7.5.
ПСЕВДОНИМЫ ТИПОВ
Для любого типа можно объявить сколько
угодно псевдонимов. Например:
type
TMyInteger = Integer;
В дальнейшем псевдоним можно использовать
так же, как и базовый тип:
var
Mylnt: TMyInteger;
begin
Mylnt := 2*Round(pi);
end;
Такого рода псевдонимы обычно используются
для повышения наглядности кода программы. Однако в Object Pascal можно объявлять
строго типизированные псевдонимы добавлением зарезервированного слова type перед
именем базового типа:
type
TMyIntegerType =
type
Integer;
var
MylntVar: TMyIntegerType;
С точки зрения компилятора, типизированные
псевдонимы совместимы с базовым типом в различного рода выражениях, но фактически
они объявляют
новый тип данных,
поэтому их нельзя использовать в качестве
формальных параметров обращения к подпрограммам вместо базового типа. Если,
например, объявлена процедура
function
MylntFunc(APar: integer): Integer;
begin
end;
то такое обращение к ней
MylntFunc(MylntVar)
будет расценено компилятором как
ошибочное.
Строго типизированные псевдонимы
заставляют компилятор вырабатывать информацию о типе для этапа прогона программы
(RTTI - Run-Time Type Information). Эта информация обычно используется средой
Delphi для обеспечения функционирования разного рода редакторов свойств и программ-экспертов.