我读到不能共享析构函数,这是真的吗?
我有一个带有几个子类的基类和的析构函数
这些子类不会改变。这将导致某些重复
码。
是否可以共享析构函数?如果不是,我将如何避免这些析构函数中的重复代码?
Class A{
public:
~A() {
//do something
}
};
class B: public A{
};
class C: public A{
};
class D: public A{
};
现在,我希望
B
,C
和D
具有与A
相同的析构函数。 最佳答案
每个类的析构函数都会自动为所有子对象(包括基类子对象)调用析构函数。因此,您可以通过将析构函数放在基础或成员析构函数中来共享其行为。当然,派生类仍然具有自己的析构函数,但是在大多数情况下,编译器生成的析构函数(除了对子对象析构函数的强制调用之外,什么也不做)。
关于c++ - 在通用层次结构中的类之间共享析构函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16425512/