Записи в модулях с полным синтаксисом — различия между версиями

Материал из Вики ИТ мехмата ЮФУ
Перейти к: навигация, поиск
(Пример)
 
(не показана 1 промежуточная версия этого же участника)
Строка 5: Строка 5:
  
 
<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;