fortran 派生类型如何定义成员函数
时间: 2024-04-15 18:29:32 浏览: 82
FORTRAN模块详解.doc
在Fortran中,派生类型可以通过在类型定义中定义过程来创建成员函数。以下是一个示例代码,展示了如何定义一个派生类型及其成员函数:
```fortran
module MyModule
type :: MyType
integer :: value
contains
procedure :: setValue
procedure :: getValue
end type MyType
contains
subroutine setValue(this, x)
class(MyType), intent(inout) :: this
integer, intent(in) :: x
this%value = x
end subroutine setValue
function getValue(this) result(x)
class(MyType), intent(in) :: this
integer :: x
x = this%value
end function getValue
end module MyModule
program TestProgram
use MyModule
type(MyType) :: obj
integer :: val
call obj%setValue(42)
val = obj%getValue()
print *, "Value:", val
end program TestProgram
```
在上面的示例中,我们定义了一个叫做`MyType`的派生类型,并在其中定义了两个成员函数`setValue`和`getValue`。`setValue`过程用于设置`MyType`对象的值,而`getValue`函数用于获取对象的值。
在程序的主程序中,我们声明了一个`MyType`类型的对象`obj`,并使用成员函数来设置和获取对象的值。最后,我们打印出获取到的值。
注意,在派生类型的成员函数中,需要使用`class`关键字来指定该过程或函数作用于某个特定的对象。
这是一种简单的方式来定义派生类型的成员函数,你也可以在派生类型中定义更多的过程和函数来实现更复杂的功能。
阅读全文