Автор: cheops (01.04.2007 в 14:54)
Если тела не реализовывать, то не будет :))) правда объявление прототипа без реалзации возможно не только для виртуальных функций, но и вообще для всех функций программы. Задача чисто виртуального метода - потребовать переопределение метода в производном классе (например, в Java, PHP для этого используются интерфейсы)...
Приведённый выше пример, является демонстрацией того, как не следует поступать - так как мы при помощи "хитрости" просто пытаемся (не до конца) из чисто-виртуальной функции сделать просто виртуальную функцию. Такой "хитрый" код является признаком плохо тона. Да возможно (специально проверил в Builder, VC++ и GCC), но лучше так не поступать. Традиционно для чисто виртуальных методов в базовом классе не определяют реализации вообще, а реализуют их в производных классах.