Всякий раз, когда вы сталкиваетесь с этим сообщением, это сразу означает, что вы не определили функцию pure virtual
в производном классе и хотите создать ее экземпляр. И если вы используете хороший компилятор, то, я уверен, он указывает, какую pure virtual
функцию вы не реализовали. По крайней мере, GCC указывает на это.
См. Сообщение об ошибке здесь: http://www.ideone.com/83iDk
prog.cpp: в функции int main ():
prog.cpp: 11: ошибка: невозможно объявить переменную "a" абстрактного типа "A"
prog.cpp: 6: note: потому что следующие виртуальные функции являются чистыми в «A»:
prog.cpp: 7: примечание: виртуальная пустота A :: f ()
Этого более чем достаточно, чтобы вы не реализовали A::f()
.