« Предыдущий вопрос
Деструкторы

Borland Pascal предоставляет специальный тип метода, называемый сборщиком мусора (или деструкт

Загрузка
Скачать Получить на телефон
например +79131234567

txt fb2 ePub html

на телефон придет ссылка на файл выбранного формата

Что это

Шпаргалки на телефон — незаменимая вещь при сдаче экзаменов, подготовке к контрольным работам и т.д. Благодаря нашему сервису вы получаете возможность скачать на телефон шпаргалки по информационным технологиям. Все шпаргалки представлены в популярных форматах fb2, txt, ePub , html, а также существует версия java шпаргалки в виде удобного приложения для мобильного телефона, которые можно скачать за символическую плату. Достаточно скачать шпаргалки по информационным технологиям — и никакой экзамен вам не страшен!

Сообщество

Не нашли что искали?

Если вам нужен индивидуальный подбор или работа на заказа — воспользуйтесь этой формой.

Следующий вопрос »
Поля данных объекта и формальные параметры метода

Выводом из того факта, что методы и их объекты разделяют общую область действия, является то,

Виртуальные методы


Метод становится виртуальным, если за его объявлением в типе объекта стоит новое зарезервированное слово virtual. Если объявляется метод в родительском типе как virtual, то все методы с аналогичными именами в дочерних типах также должны объявляться виртуальными во избежание ошибки компилятора.


Ниже приведены объекты из примера платежной ведомости, должным образом виртуализированные:


tyрe


PEmрloyee = ^TEmployee;


TEmployee = object


Name, Title: string[25];


Rate: Real;


constructor Init (AName, ATitle: String; ARate: Real);


function GetPayAmount: Real; virtual;


function GetName: String;


function GetTitle: String;


function GetRate: Real;


рrocedure Show; virtual;


end;


PHourly = ^THourly;


THourly = object(TEmployee);


Time: Integer;


constructor Init (AName, ATitle: String; ARate: Real;


Time: Integer);


function GetPayAmount: Real; virtual;


function GetTime: Integer;


end;


PSalaried = ^TSalaried;


TSalaried = object(TEmployee);


function GetPayAmount: Real; virtual;


end;


PCommissioned = ^TCommissioned;


TCommissioned = object(Salaried);


Commission: Real;


SalesAmount: Real;


constructor Init (AName, ATitle: String; ARate,


ACommission, ASalesAmount: Real);


function GetPayAmount: Real; virtual;


end;


Конструктор является специальным типом процедуры, которая выполняет некоторую установочную работу для механизма виртуальных методов. Более того, конструктор должен вызываться перед вызовом любого виртуального метода. Вызов виртуального метода без предварительного вызова конструктора может привести к блокированию системы, а у компилятора нет способа проверить порядок вызова методов.


Каждый тип объекта, имеющий виртуальные методы, обязан иметь конструктор.


Конструктор должен вызываться перед вызовом любого другого виртуального метода. Вызов виртуального метода без предыдущего обращения к конструктору может вызвать блокировку системы, и компилятор не сможет проверить порядок, в котором вызываются методы.