Закрытая функция в Фортране

Добавление ключевого слова const в конце метода запрещает ему изменять любые значения членов или вызывать любые неконстантные методы. Единственным исключением являются изменяемые значения, которые всегда можно изменить.

class A
{
    int i1;
    mutable int i2;
public:
    void m() const
    {
        // i1 = 5 <- error
        i2 = 5 // <- ok
    }
}
13
задан Tim Whitcomb 13 December 2011 в 17:20
поделиться

3 ответа

Это будет только работать с Фортраном 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
26
ответ дан 1 December 2019 в 20:02
поделиться

Я никогда не писал строку ФОРТРАНА, но этот поток о "Частных процедурах модуля", кажется, актуален по крайней мере Я надеюсь, что так. Кажется, содержит ответы, по крайней мере.


сводка jaredor:

Общедоступный/частный атрибут существует в модулях в Фортране 90 и позже. Фортран 77 и ранее - Вам не повезло.

2
ответ дан 1 December 2019 в 20:02
поделиться
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
...
1
ответ дан 1 December 2019 в 20:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: