访问控制
可以使用 private
和 public
属性和语句来控制模块中声明的符号的可访问性。
声明表格的语法:
!all symbols declared in the module are private by default
private
!all symbols declared in the module are public by default
public
!symbols in the list will be private
private::name1, name2
!symbols in the list will be public
public::name3, name4
属性形式的语法:
integer, parameter, public::maxn = 1000
real, parameter, private::local_constant = 42.24
可以使用模块从程序单元访问公共符号,但私有符号不能。
如果未使用规范,则默认为 public
。
使用默认访问规范
private
要么
public
可以通过使用 entity-declaration-list 指定不同的访问权限来更改 **
public::name1, name2
或使用属性。
此访问控制还会影响从另一个模块导入的符号:
module mod1
integer::var1
end module
module mod2
use mod1, only: var1
public
end module
program test
use mod2, only: var1
end program
是可能的,但是
module mod1
integer::var1
end module
module mod2
use mod1, only: var1
public
private::var1
end module
program test
use mod2, only: var1
end program
是不可能的,因为 var
在 mod2
是私人的。