Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Виртуальные методы. Конструкторы и деструкторы



Удобно иметь общий сложный метод, а различия вынести в сменные подчиненные методы. Эту идею называют конструктивным полиморфизмом. Она осуществляется с помощью виртуальных подчиненных методов.

При определении методов виртуальными связь между этими методами и вызывающими их процедурами будет устанавливаться не во время трансляции, а во время выполнения программы (позднее связывание). Для виртуальных методов каждого типа транслятор создает таблицу с их адресами, которая используется при выполнении (а не при компиляции).

Чтобы воспользоваться виртуальными методами, необходимо выполнить следующие действия:

1. В описании объекта после заголовка виртуального метода добавить слово virtual.

2. Заголовки виртуальных методов предка и потомка должны в точности совпадать, причем оба метода должны быть виртуальными.

3. Инициализация экземпляра объекта должна выполняться методом особого вида, который называется конструктором:

Constructor <имя блока> [(<перечень формальных параметров>)];

Это разновидность процедуры. Явно записанных действий в нем может и не быть, как и формальных параметров.

Под инициализацией экземпляра объекта понимается присвоение полям исходных значений, открытие файлов, первоначальный вывод на экран и т. п. Именно такие действия и возлагаются на конструктор.

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

Роль деструктора противоположна роли конструктора. Он выполняет действия, завершающие работу с объектами: закрывает файлы, очищает динамическую память, восстанавливает экран и т. п. Заголовок метода деструктора выглядит следующим образом:

Destructor <имя блока> [(<список формальных параметров>);





Дата публикования: 2014-10-25; Прочитано: 309 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...