Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

CONSTRUCTOR INIT;

Читайте также:
  1. With xor constructor destructor

............

END;

CONSTRUCTOR POINT.INIT;

BEGIN

END;

Використання конструкторів повинно здійснюватися згідно наступних правил:

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

Конструктором варто вибирати, або ініціалізуючий метод, або пустий.

Конструктор не може бути віртуальним.

Конструктори можуть успадковуватися при наслідуванні.

Конструктор включає пізнє зв’язування лише для „свого” об’єкта.

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

Оголошується деструктор за допомогою службового слова DESTRUCTOR. Це слово замінює відповідно слово procedure або function у заголовку відповідного методу. Як і конструктор деструктор може бути один з значущих методів, який виконує деяку завершальну операцію об’єкта. Також деструктор може бути пустим, тоді його основне призначення закрити режим пізнього зв’язування.

Застосування деструктора варто проводити згідно з наступними правилами:

Деструкторів у об’єкта може бути декілька. Пізнє зв’язування закривається явним викликом будь-якого з них.

В якості деструктора варто вибирати, або завершальний метод, або пустий метод.

Деструктор може бути віртуальним.

Деструктори можуть успадковуватися за принципом наслідування.

Свій режим зв’язування у об’єкта закриває свій деструктор.

Таким чином для реалізації методу рух у попередньому прикладі потрібно, щоб оголошення структури класу point або circle мало наступний вигляд:

TYPE

POINT=object

x,y:integer;

c:byte;

f:boolean;

CONSTRUCTOR INIT;

PROCEDURE SETCOORD (xx,yy:integer);

PROCEDURE SETCOL (cc:byte);

FUNCTION GETXX: integer;

FUNCTION GETYY: integer;

PROCEDURE ON; virtual;

PROCEDURE OFF;virtual;

PROCEDURE RUH(dx,dy:integer);

DESTRUCTOR DONE;

END;

CIRCLE=object(POINT)

R:integer;

PROCEDURE SETR(rr:integer);

FUNCTION GETR: integer;

PROCEDURE ON; VIRTUAL;

PROCEDURE OFF; VIRTUAL;

END;

.........

{реалізація методів}

VAR

a:POINT;

b:CIRCLE;

BEGIN

B.SETCOORD(200,200);

B.SETCOL(9);

B.SETR(20);

B.INIT;

B.RUH(50,50);

B.DONE;

END.

Тема: Динамічні об’єкти.

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

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

Оголошення динамічних об’єктів здійснюється за звичайним правилом побудови вказівних типів.

TYPE

POINT=object

.........

END;

CIRCLE=object(POINT)

.........

END;

PPOINT=^POINT;

PCIRCLE:=^CIRCLE;

VAR

a:POINT;

b:CIRCLE;

pa:PPOINT;

pb:PCIRCLE;

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

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




Дата добавления: 2015-09-11; просмотров: 15 | Поможем написать вашу работу | Нарушение авторских прав

Xx: real; | Rewrite (Output); | Процедура | Процедура | Процедура | Процедури обслуговування переривань. | Процедура | Процедура | B.RUH(-50,-50); | SetColor(c); |


lektsii.net - Лекции.Нет - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав