Виртуальный почему-то возвращает ноль всегда, пришлось свой реализовать.