gpt4 book ai didi

c++ - 从子析构函数中删除父构造函数所做的分配

转载 作者:行者123 更新时间:2023-11-28 07:16:55 25 4
gpt4 key购买 nike

我有一个这样的子构造器:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com