
Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Климов. Лекции / Алг_яз_Лекция_6.pptx
X
- •Конструкторы
- •Полиморфизм
- •Виртуальные методы
- •Метод становится виртуальным, если за его объявлением в типе объекта стоит зарезервированное слово
- •Необходимо помнить, что если метод объявлен в родительском типе как
- •Например:
- •Виртуальные методы
- •Виртуальные методы
- •Виртуальные методы
- •Например:
- •Виртуальные методы
- •Виртуальные методы
- •Как только родительский тип объекта объявит метод виртуальным, все его потом
- •Расширяемость объектов
- •Рекомендуется делать методы виртуальными.
- •Точно так же, как и любые типы данных в Паскале,
- •Если динамический объект содержит виртуальные
- •Специально для работы с динамическими объектами
- •При использовании расширенного синтаксиса процедуры
- •Процедура New также может использоваться в качестве функции, которая возвращает значение указателя.
- •Турбо Паскаль позволяет установить пользовательскую функцию обработки ошибок динамической памяти с помощью переменной
- •Новая функция обработки ошибок устанавливается путем присваивания ее адреса переменной НеарЕrrоr следующим образом:
- •По умолчанию, если не хватает памяти для размещения экземпляра динамическог
- •Обнаружение ошибок конструктора
- •Обнаружение ошибок конструктора
- •Обнаружение ошибок конструктора
- •Если динамические экземпляры р
- •Рассмотрим, как можно описать последовательный вызов конструкторов типа
- •пример
- •можно переписать конструкторы типа TStaff и ТТеасher с учетом обнаружения ошибок:
- •CONSTRUCTOR TStaff.Init(Nm,Dt:STRING; Rt,Bn:REAL);
- •Деструкторы
- •Деструкторы
- •Деструктор размещается вместе
- •Деструкторы можно наследовать, и они могут быть либо с
- •Деструкторы
- •Деструкторы
- •Информация о размере удаляемого объекта становится дост
- •Для выполнения освобождения памяти при позднем связывании деструктор нужно вызывать как часть расширенного
- •Деструкторы
- •DESTRUCTOR TPerson.Done;
- •Динамические методы.
- •Динамические методы.
- •Использование динамических методов целесообразно при создании длинной иерарх

CONSTRUCTOR TStaff.Init(Nm,Dt:STRING; Rt,Bn:REAL); |
|
BEGIN |
THEN Fail; |
IF NOT INHERITED Init(Nm,Dt,Rt) |
|
Bonus:= Bn; |
|
END; |
|
Полезная информация |
31 |

Деструкторы |
32 |

Деструкторы |
33 |

Деструктор размещается вместе |
|
с другими методами объекта в |
|
определении типа объекта: |
|
ТУРЕ |
|
TPerson = OBJECT |
|
Name: STRING[30]; |
|
Date: STRING[10]; |
|
Rate: REAL; |
|
CONSTRUCTOR Init(Nm,Dt:STRING; Rt:REAL); |
|
DESTRUCTOR Done; VIRTUAL; |
|
PROCEDURE ShowAll; VIRTUAL; |
|
END; |
|
Деструкторы |
34 |

Деструкторы можно наследовать, и они могут быть либо с
Деструкторы |
35 |

Деструкторы |
36 |

Деструкторы |
37 |

Информация о размере удаляемого объекта становится дост
Деструкторы |
38 |

Для выполнения освобождения памяти при позднем связывании деструктор нужно вызывать как часть расширенного синтаксиса процедуры Dispose:
Dispose(Р,Done);
Деструкторы |
39 |

Деструкторы |
40 |
Соседние файлы в папке Климов. Лекции