Fortran 2003中类型和类的区别

17

我被告知为了我的博士学位,我必须学习fortran 2003语言。 我以前从未使用过OOP程序或Fortran。 我试图理解类型和类之间的区别。 我知道类是用“TYPE”关键字声明的,但我也看到过使用“CLASS”关键字的示例,所以我感到困惑。 希望这样说得清楚。

1个回答

14
关键字 type 用于声明派生类型,最好不要养成认为 type 用于声明所谓的 的习惯,这可能是从外语中引入的。
关键字class 在受限情况下使用,表示指定类型或其任何扩展类型扩展类型 是Fortran术语,表示一种扩展了另一种类型的类型,本质上是一种专业化继承自另一种类型。在过程虚拟参数列表和具有属性allocatable或属性pointer的实体声明中使用class的受限情况。 class 实体在运行时获得动态type,其动态类型可能会因运行而异,也可能在程序的单次执行中发生变化。
如果您不理解前面段落中的说明,可能是因为我解释得不够清楚,但也可能是因为您还没有足够的Fortran基础。要获得基础,请找到一个最新的在线教程、在线参考指南并开始编程。

非常感谢您的快速回复。其中一些内容我理解了,我认为您是正确的,我还没有完全掌握基础知识。不幸的是,我需要尽快产生一些结果,因此需要找到一个速成课程。 - Tori
2
尝试理解动态分派,这是面向对象编程中的关键。整个类和类型绑定过程都与此有关。 - Vladimir F Героям слава
2
@Tori 这里有一个快速入门课程: https://www.pgroup.com/lit/articles/insider/v3n1a3.htm 和 https://www.pgroup.com/lit/articles/insider/v3n2a2.htm - PetrH
1
仅为完整起见,还有一篇关于参数化派生类型的文章(我认为对Tori来说太高级了,但对某些人很有用):https://www.pgroup.com/lit/articles/insider/v5n2a4.htm - PetrH

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接