訪問控制
可以使用 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
是私人的。