MST
星途 面试题库

面试题:Fortran面向对象编程中模块的使用

在Fortran面向对象编程里,简述模块(module)的作用,并举例说明如何在模块中定义类型、变量和子程序,同时展示如何在其他程序单元中使用该模块。
43.6万 热度难度
编程语言Fortran

知识考点

AI 面试

面试题答案

一键面试

模块(module)的作用

  1. 封装与信息隐藏:模块允许将相关的数据和子程序封装在一起,实现信息隐藏。模块内部的数据和子程序可以被隐藏起来,只有模块提供的特定接口可供外部程序单元访问,这样可以保护数据的完整性和安全性。
  2. 代码组织:有助于将大型程序分解为较小的、更易于管理的单元。通过将相关功能放在同一个模块中,使代码结构更清晰,易于维护和扩展。
  3. 共享数据和过程:不同的程序单元(如主程序、子程序等)可以使用模块中定义的数据和子程序,避免重复代码,提高代码的复用性。

在模块中定义类型、变量和子程序的示例

module my_module
    implicit none

    ! 定义类型
    type :: my_type
        integer :: num
        real :: value
    end type my_type

    ! 定义变量
    type(my_type) :: my_variable
    integer :: shared_integer

    contains
        ! 定义子程序
        subroutine my_subroutine()
            my_variable%num = 10
            my_variable%value = 3.14
            shared_integer = 20
        end subroutine my_subroutine
end module my_module

在其他程序单元中使用该模块

program use_my_module
    use my_module
    implicit none

    call my_subroutine()
    print *, 'my_variable%num:', my_variable%num
    print *, 'my_variable%value:', my_variable%value
    print *, 'shared_integer:', shared_integer
end program use_my_module

在上述示例中,my_module 模块定义了一个自定义类型 my_type,以及该类型的变量 my_variable 和一个普通整数变量 shared_integer。模块中还包含一个子程序 my_subroutine。在 use_my_module 程序中,通过 use my_module 语句使用了该模块,并调用了模块中的子程序,访问了模块中的变量。