我正在做一个练习,要求我学习一个基类 Rodent 并使其成为一个纯抽象类。我对纯抽象类的理解是它充当接口,只包含纯虚函数。虽然这是一个简单的练习,但我对本书提供的解决方案有疑问:
class Rodent
{
public:
virtual ~Rodent() {cout << "Destroy rodent" << endl;}
virtual void run() = 0;
virtual void squeak() = 0;
};
如您所见,作者为析构函数添加了一个虚拟定义。添加这个定义是否意味着这是一个抽象类而不是一个“纯”抽象类?