在父类中仅使用纯虚拟析构函数创建抽象类是否是一种好的做法(是否可能)?
这是一个示例
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(使用前将#替换为@)