Здравствуйте, Eldar9x, Вы писали:
E>Теперь все понятно, большое спасибо.
E>Насколько я понял, невозможно изменить указатель так, чтобы неквалифицированный вызов a->do_it() привел бы к вызову виртуальной функции какого-либо базового класса в иерархии.
Правильно. Если do_it переопределена в наследниках, то будет вызван именно вариант из самого нижнего наследника, содержащего переопределение.
ЗЫ
Существует тонкость, связанная с вызовом (прямым или опосредованным) виртуальных функций в конструкторах/деструкторе. Тема эта время от времени всплывает, так что, возможно, тебе тоже будет интересно... Так что поиск в помощь