«Чистая виртуальная функция» - это функция, которая не имеет определения в базовом классе. Это означает, что все дочерние элементы этого базового класса будут иметь переопределенную реализацию этой функции, но базовый класс не имеет реализации.
В вашем примере похоже, что вы вызываете чисто виртуальную функцию, поэтому вы вызываете функцию, которая объявлена, но, поскольку вы не вызываете реализацию любого дочернего элемента, у нее нет определения.