Основные понятия ООП

Страница 3

Статические методы

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

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

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

При вызове виртуальных и динамических методов выполняемая процедура или функция определяется по типу фактического параметра. Для этого используется таблица виртуальных методов (Virtual Method Table, VMT) в случае виртуальных методов и таблица динамических методов (Dynamic Method Table, DMT) в случае динамических.

Таблица виртуальных методов создается для каждого объектного типа. В ней содержатся адреса виртуальных методов этого объектного типа. Независимо от количества переменных данного объектного типа, для него создается только одна таблица VMT. При вызове виртуального метода каким-либо экземпляром местонахождение кода реализации данного метода определяется по таблице VMT для типа данного экземпляра. Взаимосвязь между VMT и экземпляром класса устанавливается при инициализации объекта. Так как адреса виртуальных методов при их вызове определяются через VMT объекта, то гарантированно будут использоваться методы, соответствующие типу объекта.

В таблице VMT содержатся адреса всех виртуальных методов класса – как унаследованных от предков, так и переопределенных в данном классе. Поэтому виртуальные методы вызываются достаточно быстро, но требуют большого объема памяти. В отличие от виртуальных методов, динамические методы вызываются медленнее, но зато занимают меньше памяти. Это объясняется тем, что в таблице динамических методов класса хранятся адреса только тех динамических методов, которые определены в данном классе. При вызове динамического метода адрес кода его реализации сначала ищется в таблице DMT, относящейся к типу данного экземпляра. Если адрес не найден, производится поиск в таблицах DMT всех классов-предков в порядке иерархии.

Для перекрытия виртуальных и динамических методов используется служебное слово override.

Рассмотрим пример использования виртуального метода для реализации концепции полиморфизма. С этой целью объявим методы класса «окружность», которые переопределяются в классе «кольцо», как виртуальные.

Страницы: 1 2 3 4 5


Другое о педагогике:

Пути взаимосвязи основного и регионального компонентов образования в школьном литературном краеведении
Школьный литературный курс не раз менялся, но определенный круг писателей, входящих в школьные программы, остается неизменным — А. С. Пушкин, А.С. Грибоедов, М.Ю. Лермонтов, Н.В. Гоголь, И.С. Тургенев, Л.Н. Толстой, А.П. Чехов и др. Все связанное с писателями-классиками относится к основному литера ...

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

Проблема индивидуального подхода к детям получила развитие и в учении прогрессивных педагогов в России
Замечательный русский педагог К.Д. Ушинский разработал обширную методику приёмов индивидуального подхода к детям, основы профилактической работы по воспитанию полезных привычек, но в то же время высказывал мнение, что в сложном процессе индивидуального подхода к ребёнку нельзя дать каких-то определ ...

Меню

Copyright © 2019 - All Rights Reserved - www.normaleducation.ru