gpt4 book ai didi

c++ - 如果一个类有一个非纯析构函数,它还能是纯抽象的吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:10:00 24 4
gpt4 key购买 nike

我正在做一个练习,要求我使用一个基类 Rodent 并使它成为一个纯抽象类。我对纯抽象类的理解是它作为一个接口(interface),只包含纯虚函数。虽然这是一个简单的练习,但我对本书提供的解决方案有疑问:

class Rodent
{
public:

virtual ~Rodent() {cout << "Destroy rodent" << endl;}
virtual void run() = 0;
virtual void squeak() = 0;
};

如您所见,作者为析构函数添加了一个虚拟定义。添加这个定义是不是意味着这是一个抽象类而不是一个“纯”抽象类?

最佳答案

抽象类必须包含至少一个纯虚函数。

你的类已经有两个纯虚函数run()squeak(),所以你的类是抽象的,因为这两个纯虚函数。

您不能创建此类的任何对象。

编辑:

纯抽象类是专门具有纯虚函数(没有数据)的类。由于您的析构函数不是纯虚拟的,因此您的类不是纯抽象类。

关于c++ - 如果一个类有一个非纯析构函数,它还能是纯抽象的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7585918/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com