MiiNiPaa уже подкинул хорошую идею проверить через указатель на базовый класс, действительно ли метод override-ится (я буду орининальные термины использовать, т.к. конкретный перевод, к сожалению, зависит от книги). Если будет по-прежнему вызываться метод базового класса, то у вас скрытие (hide). Используйте ключевое слово override, чтобы убедиться, что метод корректно попадает в таблицу виртуальных вызовов. Методы с const и без const-а действительно различны, это хорошо видно на примере оператора индексации (operator[]) - его часто определяют в двух вариантах - константном и неконстантном.