C++ 抽象类析构函数[关闭]

2023-11-27

在父类中仅使用纯虚拟析构函数创建抽象类是否是一种好的做法(是否可能)?

这是一个示例

class AbstractBase {
public:
    AbstractBase () {}
    virtual ~AbstractBase () = 0;
};

class Derived : public AbstractBase {
public:
    Derived() {}
    virtual ~Derived() {}
};

否则,如果派生类的属性和构造函数都相同,而其他方法完全不同,我如何创建抽象类?


C++ 中的接口应该有一个已实现但不执行任何操作的虚拟析构函数。接口中的所有其他方法都必须定义为抽象的(例如在声明中添加 = 0)。这将确保您无法创建接口类的实例,但是一旦将接口指针分配给父对象,您就可以删除您的对象。抱歉,措辞不好,下面是一些代码:

class ISampleInterface
{
public:
    virtual ~ISampleInterface() { };
    virtual void Method1() = 0;
    virtual void Method2() = 0;
}

class SampleClass : public ISampleInterface
{
public:
    SampleClass() { };
    void Method1() { };
    void Method2() { };
}

int main()
{
    ISampleInterface *pObject = new SampleClass();
    delete pObject;
    return 0;
}
    
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 抽象类析构函数[关闭] 的相关文章

随机推荐