МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів Контакти
Тлумачний словник |
|
|||||||
Так оголошені вказівники на об’єкти класів є статичними змінними – це чотирибайтні числа-адреси у пам'яті.Створюються динамічні об’єкти явним викликом 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. Для того, щоб за допомогою операції присвоєння скопіювати стан потрібно використовувати операцію розіменування вказівника.
|
||||||||
|