|
||||||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
New ( P1 ); New ( Р2 );
де P1 і Р2 - імена вказівників на динамічні об'єкти. Begin New(P1); New(P2); …. End;
New може використовуватися також як функція, яка повертає значення вказівника. Наприклад: P1:= New (Pobjname); де Pobjname - ім'я типу вказівника динамічного об'єкту. Звернення до змінної - екземпляру об'єкту за допомогою вказівника проводиться у вигляді Р1^ або Р2^. Виклики методів проводяться звичайним способом. Наприклад: Р1^.МЕТ2; Якщо динамічний об'єкт містить віртуальні методи, він повинен ініціалізуватися за допомогою виклику конструктора. Наприклад: P1^.INIT; P2^.INIT; Якщо конструктор не може розмістити динамічний об'єкт ОП, то він повертає "порожній" вказівник, наприклад: P1 = NIL. Для роботи з динамічними об'єктами, що містять віртуальні методи, Паскаль має процедури NEW і DISPOSE з розширеними можливостями. Розширений синтаксис процедури New дозволяє виділяти з купи ОП для об'єкту і ініціалізувати сам об'єкт за допомогою виклику його конструктора. Для цього процедура New викликається з двома параметрами: ім'ям вказівника і ім'ям конструктора. Наприклад: New (P1,init); New(P2,init);. Параметр INIT виконує виклик конструктора і ініціалізацію динамічного об'єкту. Для роботи з нетипізованими вказівниками можна використовувати процедури GetMem і FreeMem. Процедура GetMem виділяє область динамічної пам'яті заданого обсягу. Початкова адреса області пам'яті, яка буде виділена, запам'ятовується у вказівнику, що є параметром процедури. Виклик процедури GetMem має такий синтаксис:
Тут <ідентифікатор вказівника> - змінна типу pointer; <обсяг пам'яті> — змінна або вираз типу word. Обсяг пам'яті задається в байтах. Обсяг пам'яті, що виділяється для однієї динамічної змінної, не може перевищувати 65 521 байт.
Зазначимо, що загальний обсяг усіх вільних ділянок динамічної пам'яті обчислює функція MemAvail. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.) |