Розширене використання оператора New

Pascal використовує розширений синтаксис процедури New, який дозволяє одночасно виділяти пам’ять для об’єкту в динамічній області та ініціалізувати сам об’єкт за допомогою виклику його конструктора. Тепер процедура New може викликатися з двома параметрами: ім’я вказівника використовується в якості першого параметра, а ім’я конструктора – в якості другого параметра.

 

New(S, Init('Рanкo','10.10.1995',550);

 

При використанні розширеного синтаксису процедури New конструктор Init виконує динамічне розміщення об’єкту, використовуючи спеціальний згенерований код, що викликається оператором CONSTRUCTOR і виконується до основного коду конструктора. Ім’я екземпляра об’єкту не може використовуватися в якості першого параметра процедури, оскільки під час виклику процедури New екземпляр, що ініціалізується за допомогою Init, ще не існує. Компілятор визначає правильність виклику конструктора, перевіряючи тип вказівника, що передається в якості першого параметра.

Процедура New також може використовуватися в якості функції, що повертає значення вказівника. Параметр, який передається New, цього разу повинен бути типом вказівника на об’єкт, а не самим об’єктом.

TYPE

SStudent:=^TStudent;

VAR

S:SStudent;

S:=New(SStudent);

 

Використання процедури New як функції може застосовуватися до всіх типів даних, а не тільки до об’єктів.

В якості другого параметра процедура New може містити конструктор об’єктного типу

S:=New(SStudent, Init('Рanкo','10.10.1995',550);

 








Дата добавления: 2015-08-26; просмотров: 515;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.