Bap*_*ton 2 c++ class abstract pure-virtual
我正在进行一项练习,要求我拿一个基类Rodent并使它成为一个纯粹的抽象类.我对纯抽象类的理解是它充当接口并且只包含纯虚函数.虽然这是一个简单的练习,但我对本书提供的解决方案有疑问:
class Rodent
{
public:
virtual ~Rodent() {cout << "Destroy rodent" << endl;}
virtual void run() = 0;
virtual void squeak() = 0;
};
Run Code Online (Sandbox Code Playgroud)
如您所见,作者为析构函数添加了一个虚拟定义.添加这个定义是否意味着这不是一个抽象类而不是一个"纯粹的"抽象类?
Abstract类必须包含至少一个纯虚函数.
你的类已经有两个纯虚函数run()
和squeak()
,那么你的类是因为这两个纯虚函数摘要.
您无法创建此类的任何对象.
编辑:
纯抽象类是一个专门具有纯虚函数(没有数据)的类.由于您的析构函数不是纯虚拟的,因此您的类不是纯抽象类.