Методы в записях: различия между версиями

Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
 
Строка 1: Строка 1:
В записях также можно определять методы и конструкторы.
В отличие от объектов классов переменные записей можно не инициализировать (поля инициализируются по умолчанию нулевыми значениями).
Инициализацию полей записей можно также проводить либо специальным методом (в данном случае Init), либо вызовом конструктора.
Несмотря на то, что записи являются, в отличие от класса, размерным типом, синтаксис вызова конструктора - такой-же, как и для классов.
<source lang="Delphi">type
<source lang="Delphi">type
   Point = record
   Point = record

Текущая версия от 16:49, 14 января 2010

В записях также можно определять методы и конструкторы. В отличие от объектов классов переменные записей можно не инициализировать (поля инициализируются по умолчанию нулевыми значениями). Инициализацию полей записей можно также проводить либо специальным методом (в данном случае Init), либо вызовом конструктора. Несмотря на то, что записи являются, в отличие от класса, размерным типом, синтаксис вызова конструктора - такой-же, как и для классов.

type
  Point = record
    x,y: integer;
    procedure Init(x,y: integer);
    begin
      Self.x := x;
      Self.y := y;
    end;
    constructor (x,y: integer);
    begin
      Self.x := x;
      Self.y := y;
    end;
    procedure Println;
    begin
      writeln(x,' ',y);
    end;
  end;

var p,p1: Point;

begin
  p.Init(2,3);
  p.Println;
  p1 := new Point(5,6);
  p1.Println;
end.

Ссылки