Воскресенье, 28 Апреля 2024, 20.14.08
Приветствую Вас Гость

Всё о Паскале

Меню сайта
Категории каталога
Наш опрос
Каким языком программирования вы владеете ?
Всего ответов: 571
Главная » Статьи » Pasca в изучение » типы данных

записи
Записи
Запись представляет собой набор элементов разных типов, каждый из которых имеет свое имя и называется полем записи. Тип записи конструируется следующим образом:

record
список полей
список методов
end

Приведем пример записи, содержащей только поля:

type
SexType = (male, female);
Person = record
Name: string;
Age, Weight: integer;
Sex: SexType;
end;

При описании переменной или константы типа запись можно использовать инициализатор записи (как и в Object Pascal):

const p: Person = (Name: 'Петрова'; Age: 18; Weight: 55; Sex: female);

var p: Person := (Name: 'Иванов'; Age: 20; Weight: 80; Sex: male);

Присваивание записей копирует содержимое полей одной переменной-записи в другую:

d2 := d1;

Для записей принята именная эквивалентность типов: можно присваивать друг другу и передавать в качестве параметров подпрограмм записи, совпадающие только по имени.

В отличие от Object Pascal, в PascalABC.NET отсутствуют записи с вариантами.

Помимо полей, внутри записей могут содержаться также методы и свойства. Таким образом, записи очень близки к классам.

Список отличий между записями и классами приводятся ниже:

Запись представляет собой размерный тип (переменные типа запись располагаются на стеке).
Все члены записей – публичные, модификаторы доступа внутри записей запрещены.
Записи нельзя наследовать; от записей также нельзя наследовать (отметим, что записи, тем не менее, могут реализовывать интерфейсы). В .NET тип записи неявно предполагается наследником типа System.ValueType и реализуется struct-типом.
Конструкторы для записей имеют тот же синтаксис, что и для классов. Однако, в отличие от классов, вызов конструктора записи не создает новый объект в динамической памяти, а только инициализирует поля записи.

По умолчанию процедура write для переменной типа запись выводит ее тип. Чтобы изменить это поведение, в записи следует переопределить метод ToString класса Object.

Например:

type
SexType = (male, female);
Person = record
Name: string;
Age, Weight: integer;
Sex: SexType;
constructor Create(Name: string; Age, Weight: integer; Sex: SexType);
begin
Self.Name := Name;
Self.Age := Age;
Self.Weight := Weight;
Self.Sex := Sex;
end;
function ToString: string; override;
begin
Result := string.Format('Имя: {0} Возраст: {1} Вес: {2} Пол: {3}',
Name, Age, Weight, Sex);
end
end;
...
var p: Person := new Person('Иванов',20,70,Sex);
writeln(p);

Категория: типы данных | Добавил: alex2008pro (24 Февраля 2009) | Автор: alex2008pro
Просмотров: 747 | Рейтинг: 5.0/1 |
Форма входа
Поиск
Друзья сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0