假设我们有:
class A {
protected:
int* iArr;
float *fArr;
public:
A(int* iArr,float *fArr);
~A();
}
class B : public A {
private:
double *dArr;
public:
B(int* iArr,float *fArr,double *dArr);
~B();
}
我的直觉是它只会调用 B 的析构函数,但是当我在 Visual C++ 上运行它时,我看到在析构 B 的实例时它会调用 A 和 B 的析构函数。
那么在派生类中编写析构函数的正确方法是什么?我是否总是需要假设父类会负责删除所有内容,但只有派生类有什么?
编辑:
如果是这样,那么如果孩子扩展父类只使用覆盖函数,这是否意味着我将孩子的析构函数留空?
如果我想改变它怎么办?我的意思是如果我只想调用子析构函数怎么办?有没有办法做到这一点?