gpt4 book ai didi

oop - Fortran 容器类会自动调用包含对象的析构函数吗?

转载 作者:行者123 更新时间:2023-12-02 08:08:01 25 4
gpt4 key购买 nike

假设我有以下装有眼镜的盒子类:

TYPE :: box_class
TYPE(glass_class) :: cup1
TYPE(glass_class) :: cup2
END TYPE

glass 类有一个析构函数:

TYPE:: glass_class
CONTAINS
FINAL :: glass_destructor
END TYPE

当我的 box对象超出范围将自动调用 glass_destructor或者我需要调用 glass_destructor手动在 box析构函数?

最佳答案

派生类型 glass_class 是可终结的,因为它有一个 final 子例程。由于可终结组件(非指针和不可分配),派生类型 box_class 即使没有最终子例程也是可终结的。

现在,当type(box_class) 的对象完成时,我们遵循完成过程(F2008,4.5.6.2):

  • 没有调用子程序来完成盒子对象;
  • 以某种与处理器相关的顺序调用杯子的最终子例程;
  • 不存在父最终子例程。

总而言之:是的,如果您的盒子要定型,那么杯子将通过它定型。你不需要做更多的事情来明确这一点。

关于oop - Fortran 容器类会自动调用包含对象的析构函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49684742/

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