我有一个这样的子构造器:
Child():Parent(){
}
所以 child 的析构函数是:
~Child(){
}
parent 有类似的东西:
Parent(){
abc.Construct();
}
~Parent(){
abc.Destruct();
}
如何确保在销毁子进程期间删除初始化期间(在 Parent() 构造函数中)进行的所有分配?
最佳答案
在 Parent 构造函数中完成的操作应该在 Parent 析构函数中撤消,而不是在 Child 析构函数中。
Parent 的析构函数在 Child 的析构过程中被自动调用;就像父类构造函数在子类构造过程中被自动调用一样。
Child 可以通过构造函数的初始化列表明确指定如何初始化 Parent。这是必需的,因为 Parent 类不需要有默认构造函数。不需要明确指定在销毁 Child 时如何销毁 Parent,因为每个类只有一个析构函数,并且该析构函数不需要任何参数。
关于c++ - 从子析构函数中删除父构造函数所做的分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20084506/