1、C++中的delete operator做了两件事:调用析构方法和调用operator delete释放内存。

2、考虑析构方法,如果析构方法是虚方法,调用指针真实类型的析构方法,否则调用表面类型的析构方法。

3、析构方法的调用分为两个步骤:

  a、调用子类的析构方法(释放子类动态获取的资源),调用子类的合成析构方法(逆序调用字段的析构方法,如果是类类型,递归调用析构方法,如果是内置类型,不需要做什么),析构子类专有的成分。

  b、子类析构方法完成,调用父类的析构方法(释放父类动态获取的资源),调用父类的合成析构方法(逆序调用字段的析构方法,如果是类类型,递归调用析构方法,如果是内置类型,不需要做什么),析构父类专有的成分。

4、析构方法完成以后,才会调用operator delete释放内存。

相关文章:

  • 2022-12-23
  • 2021-11-22
  • 2021-08-12
  • 2021-05-23
  • 2022-12-23
  • 2022-02-11
  • 2021-08-06
  • 2021-11-26
猜你喜欢
  • 2022-02-15
  • 2022-12-23
  • 2022-12-23
  • 2021-05-15
  • 2021-12-01
  • 2021-12-03
  • 2022-12-23
相关资源
相似解决方案