Я работаю над упражнением, которое просит меня взять базовый класс Rodent и сделать его чистым абстрактным классом. Мое понимание чистого абстрактного класса заключается в том, что он действует как интерфейс и содержит только чистые виртуальные функции. Хотя это простое упражнение, у меня есть проблема с решением, предложенным в книге:
class Rodent
{
public:
virtual ~Rodent() {cout << "Destroy rodent" << endl;}
virtual void run() = 0;
virtual void squeak() = 0;
};
Как видите, автор добавил фиктивное определение деструктора. Не означает ли добавление этого определения, что это абстрактный класс, а не «чистый» абстрактный класс?