Fortran 2003,将派生类型传递给父类型的参数

时间:2014-03-07 22:23:16

标签: oop inheritance polymorphism fortran derived-class

搜索之后,我能够找到一个关于我刚遇到的同一错误的问题,但出于不同的原因here(他们不熟悉pass ...不同的问题)。< / p>

我的问题很简单。在Fortran中,期望class(parent)类型的参数的函数是否可以接受class(derived_from_parent)

如果需要示例或说明,请询问。非常感谢。

1 个答案:

答案 0 :(得分:3)

是的,这没有任何问题。如果你需要使用扩展(派生)类型的任何属性,你必须使用select type,但如果没有,它就没有任何复杂性。

如果您需要伪参数为allocatablepointer,则存在一些限制:

  

12.5.2.5

     

2当且仅当相关联的时候,实际参数应该是多态的   伪参数是多态的,无论是实际的还是虚拟的   参数应该是无限多态的,或声明的类型   实际参数应与虚拟的声明类型相同   参数。

(其原因在ISO / IEC 1539-1:2010的注12.27中进行了解释)