Форум — Ответы ( К темам )
? | Andrew: Применение virtual и размер кода (07-04-2003 14:14:33) |
ПРиводит ли применение директивы virtual для методов класса к 'заметному' увеличению размера кода и уменьшению скорости вызова такого метода? Спасибо за внимание. | |
Petro (07-04-2003 18:18:27) | |
Нет.
| |
Георгий (07-04-2003 19:04:30) | |
виртуальные методы физически реализуются как указатели на соответствующие функции — увеличение размера структуры на 4 байта для каждой виртуальной функции. не виртуальные методы физически реализуются как функции — размер структуры (обьекта) не увеличивается вызов виртуальной функции (метода) реализуется так: по адресу обьекта считывается поле, в котором хранится адрес виртуальной функции передаётся управление по считанному адресу вызов не виртуальной функции (метода) реализуется так: передаётся управление функции-методу (адрес становится известным на этапе компоновки) итог — на виртуальные функции расход машинного времени и памяти ничтожно мал |