Записи в модулях с полным синтаксисом — различия между версиями
Материал из Вики ИТ мехмата ЮФУ
Ulysses (обсуждение | вклад) (Новая страница: «Если требуется определить запись в модуле в полной форме, в разделе интерфейса следует о…») |
Ulysses (обсуждение | вклад) (→Пример) |
||
(не показаны 2 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
Если требуется определить запись в модуле в полной форме, в разделе интерфейса следует определять саму запись и только заголовки её методов, а реализацию — в разделе реализации. | Если требуется определить запись в модуле в полной форме, в разделе интерфейса следует определять саму запись и только заголовки её методов, а реализацию — в разделе реализации. | ||
− | При этом в разделе реализации необходимо указывать имя типа перед именем метода. | + | При этом в разделе реализации необходимо указывать имя типа перед именем метода через точку. Такая форма имени метода называется ''квалифицированной''. |
==== Пример ==== | ==== Пример ==== | ||
<source lang="pascal"> | <source lang="pascal"> | ||
− | interface | + | interface // ------------------------------------- Интерфейс ------------------------------------ |
type | type | ||
Строка 11: | Строка 11: | ||
x, y: integer; | x, y: integer; | ||
− | procedure Move(dx: integer; dy: integer); // только заголовок | + | procedure Move(dx: integer; dy: integer); // только заголовок |
end; | end; | ||
− | implementation | + | implementation // -------------------------------- Реализация ------------------------------------ |
− | procedure Point.Move(dx: integer; dy: integer); // "имя_типа." перед именем метода | + | procedure Point.Move(dx: integer; dy: integer); // "имя_типа." перед именем метода -- квалификация |
begin | begin | ||
Self.x += dx; | Self.x += dx; |
Текущая версия на 10:17, 24 декабря 2016
Если требуется определить запись в модуле в полной форме, в разделе интерфейса следует определять саму запись и только заголовки её методов, а реализацию — в разделе реализации. При этом в разделе реализации необходимо указывать имя типа перед именем метода через точку. Такая форма имени метода называется квалифицированной.
Пример
interface // ------------------------------------- Интерфейс ------------------------------------
type
Point = record
x, y: integer;
procedure Move(dx: integer; dy: integer); // только заголовок
end;
implementation // -------------------------------- Реализация ------------------------------------
procedure Point.Move(dx: integer; dy: integer); // "имя_типа." перед именем метода -- квалификация
begin
Self.x += dx;
Self.y += dy;
end;