2

我想强制继承类在 Fortran >= 2008 中定义析构函数。

到目前为止,我已经尝试了以下几种变体:

type, abstract :: parent_class_t
contains
    final, deferred, pass :: cleanup
end type

甚至不编译。我如何实现这个目标?

4

1 回答 1

1

最终绑定不会被继承。每种类型都可以声明自己的。当子派生类型完成时,会自动调用父完成过程。抽象类型不能有最终子例程,因为它没有意义。

该标准(2018 年草案)包含此解释说明:

注 7.46 最终子程序不通过类型扩展继承,也不能被覆盖。在调用扩展类型的任何附加最终子例程之后,调用父类型的最终子例程。

正如 francescalus 所指出的,语法是:

R753 final-procedure-stmtFINAL[ :: ] final-subroutine-name-list

不能指定任何属性。

于 2020-01-31T13:49:59.040 回答