ьный код, называемый таблицей
Автор admin Воскресенье, 17 мая 2009 11:32
ьный код, называемый таблицей виртуальных функций; в ней хранятся указатели на виртуальные функции классов, в соответствии с которыми в процессе выполнения программы вызываются корректные версии этих функций. Таким образом, следующие операторы приведут к вызову виртуальной функции DrawO, определенной в классе CRectangle. CRectangle *PRect; CRectangle Rect; // … PRect = &Rect; PRect->Draw ( ); В показанном ниже фрагменте вызывается виртуальная функция DrawO класса CFillRectangle. CRectangle *PRect; CFillRectangle FillRect; // … 486 Приложение А. Основы программирования на языке С++ PRect = &FillRect; PRect->Draw( ); Действительный адрес виртуальной функции DrawO до запуска программы не известен. Только на этапе выполнения программы адрес функции Draw() нужного класса связывается с ее кодом, отсюда и понятие позднего связывания. ПРИМЕЧАНИЕ–—- Программа хранит адрес таблицы виртуальных функций для каждого объекта. Кроме использования дополнительного объема памяти для этого требуется косвенный вызов функций, что занимает гораздо больше времени, чем вызов не виртуальных функций. Поэтому рекомендуется оп
Комментарии закрыты.
Последние комментарии