Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Контакти
 


Тлумачний словник
Авто
Автоматизація
Архітектура
Астрономія
Аудит
Біологія
Будівництво
Бухгалтерія
Винахідництво
Виробництво
Військова справа
Генетика
Географія
Геологія
Господарство
Держава
Дім
Екологія
Економетрика
Економіка
Електроніка
Журналістика та ЗМІ
Зв'язок
Іноземні мови
Інформатика
Історія
Комп'ютери
Креслення
Кулінарія
Культура
Лексикологія
Література
Логіка
Маркетинг
Математика
Машинобудування
Медицина
Менеджмент
Метали і Зварювання
Механіка
Мистецтво
Музика
Населення
Освіта
Охорона безпеки життя
Охорона Праці
Педагогіка
Політика
Право
Програмування
Промисловість
Психологія
Радіо
Регилия
Соціологія
Спорт
Стандартизація
Технології
Торгівля
Туризм
Фізика
Фізіологія
Філософія
Фінанси
Хімія
Юриспунденкция






Так оголошені вказівники на об’єкти класів є статичними змінними – це чотирибайтні числа-адреси у пам'яті.

Створюються динамічні об’єкти явним викликом

New(pa);

New(pb);

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

Задати стан чи реалізувати поведінку через вказівник на динамічний об’єкт можна таким чином:

pa^.SETCOORD(100,100);

pa^.SETCOL(5);

pa^.ON;

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

New(pa,INIT);

New(pb,INIT);

Використання конструктора в якості другого параметру не обов’язково.

Знищуються динамічні об’єкти явним чином.

Dispose(pa);

Dispose(pb);

При цьому відповідні вказівники звільняються від своїх значень і відповідні ділянки пам'яті звільняються від відповідних об’єктів.

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

Dispose(pa,DONE);

Dispose(pb,DONE);

Тема: Особливості операції присвоєння між динамічними об’єктами.

Між динамічними об’єктами як і між статичними можна виконувати присвоєння, при цьому присвоєння можливе між обертами одного класу та між об’єктами різних класів, що пов’язані принципом наслідування і лише від нащадка до предка, проте операція присвоєння у випадку динамічних об’єктів повинна виконуватися з певною обережністю. Взагалі присвоєння копіює стан і реалізацію поведінки між об’єктами. Якщо операція присвоєння виконується між вказівниками, то про ніяке копіювання стану немає мови.

VAR

pa1,pa2:PPOINT;

pb1,pb2:PCIRCLE;

BEGIN

New(pa1);

New(pa2);

pa2^.SETCOORD(100,100);

pa2^.SETCOL(5);

pa2^.ON;

pa1:=pa2;

Присвоєння виду в даному випадку не скопіює стан і поведінку другого об’єкта до першого, а надасть другому об’єкту два вказівники.

Перший об’єкт втратить свій вказівник і перетвориться у „сміття” у пам'яті. Така ситуація називається структурною невизначеністю, оскільки деякі маніпуляції з двома об’єктами можна буде виконати через вказівник ра1. хоча коди всіх методів другого об’єкта пов’язані з вказівником ра2.

Для того, щоб за допомогою операції присвоєння скопіювати стан потрібно використовувати операцію розіменування вказівника.




Переглядів: 260

<== попередня сторінка | наступна сторінка ==>
Конструкторів може бути декілька у одного об’єкта. Явний виклик будь-якого з них ініціалізує режим пізнього зв’язування. | Тема: Методи розробки алгоритмів і програм.

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

 

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.004 сек.