Добавление ключевого слова const
в конце метода запрещает ему изменять любые значения членов или вызывать любые неконстантные методы. Единственным исключением являются изменяемые значения, которые всегда можно изменить.
class A
{
int i1;
mutable int i2;
public:
void m() const
{
// i1 = 5 <- error
i2 = 5 // <- ok
}
}
Это будет только работать с Фортраном 90 модулей. В Вашем объявлении модуля можно указать пределы доступа для списка переменных и стандартных программ с помощью "общедоступных" и "частных" ключевых слов. Я обычно нахожу полезным использовать частное ключевое слово отдельно первоначально, которое указывает, что все в модуле является частным если явно отмеченная общественность.
В примере кода ниже, subroutine_1 () и function_1 () доступны снаружи модуля через необходимый оператор "использования", но любая другая переменная/подпрограмма/функция будет частной.
module so_example
implicit none
private
public :: subroutine_1
public :: function_1
contains
! Implementation of subroutines and functions goes here
end module so_example
Я никогда не писал строку ФОРТРАНА, но этот поток о "Частных процедурах модуля", кажется, актуален по крайней мере Я надеюсь, что так. Кажется, содержит ответы, по крайней мере.
сводка jaredor:
Общедоступный/частный атрибут существует в модулях в Фортране 90 и позже. Фортран 77 и ранее - Вам не повезло.
Private xxx, yyy, zzz
real function xxx (v)
...
end function xxx
integer function yyy()
...
end function yyy
subroutine zzz ( a,b,c )
...
end subroutine zzz
...
other stuff that calls them
...