Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Как проверить, что класс имеет виртуальные методы? |
Автор: chipset 7.4.2005, 22:36 | ||
Есть класс Т. Как узнать имеет ли он виртуальные методы, если нет его интерфейса? Следующая задумка решает этот вопрос. Дело в том, что у виртуальных классов есть такой указатель vrpt, который указывает на таблицу с виртуальными методами. Если создать класс, который наследуется от данного нам класса и объявить в нем виртуальный метод, то в случае невиртуального класса Т, добавится поле и объем занимаемой памяти увеличится (на 2 байта); в случае же виртуальнго класса, размер останется прежним т.к. указатель на таблицу уже существует (но в саму таблицу добавляется новый метод). Вот код:
Автор ответа: http://forum.vingrad.ru/index.php?act=Profile&CODE=03&MID=15 |