XL Fortran for AIX V8.1.1

ランゲージ・リファレンス

PUBLIC

目的

PUBLIC 属性は、他のプログラム単位が使用関連付けを介してモジュール・エンティティーにアクセスできることを指定します。

構文



>>-PUBLIC--+------------------------+--------------------------><
           '-+----+--access_id_list-'
             '-::-'
 
 

access_id
総称仕様、または変数、プロシージャー、派生型、定数、名前リスト・グループの名前です。

規則

PUBLIC 属性はモジュールの有効範囲にだけ指定できます。

1 つのモジュールに複数の PUBLIC ステートメントを指定できますが、access_id_list を省略できるステートメントは 1 つだけです。 access_id_list を指定していない PUBLIC ステートメントでは、モジュール内で潜在的にアクセス可能なエンティティーのデフォルトのアクセス可能度をパブリックに設定しています。このようなステートメントを含むモジュールに access_id_list を持たない PRIVATE ステートメントを指定することはできません。モジュールにこのようなステートメントを指定していない場合、デフォルトのアクセス可能度はパブリックです。明示的にアクセス可能度を指定していないエンティティーにはデフォルトにアクセス可能度があります。

パブリックな総称識別子を持つプロシージャーの場合、特定の識別子がプライベートであったとしても、総称識別子でそのプロシージャーにアクセスできます。プライベートなアクセス可能度を持つプライベート仮引き数または関数結果がモジュール・プロシージャーに含まれる場合、そのモジュール・プロシージャーはプライベートなアクセス可能度を持つということを宣言しなければなりません。また、パブリックなアクセス可能度を持つ総称識別子をそのモジュール・プロシージャーに含むことはできません。

+----------------------------------IBM 拡張----------------------------------+

パブリックというアクセス可能度を持つエンティティーは STATIC 属性を持つことはできませんが、モジュール内のパブリック・エンティティーはモジュール内の IMPLICIT STATIC ステートメントによって影響されません。

+--------------------------------IBM 拡張の終り-------------------------------+

PUBLIC 属性と互換性のある属性





MODULE MC
   PRIVATE                    ! Default accessibility declared as private
   PUBLIC GEN                 ! GEN declared as public
   INTERFACE GEN
      MODULE PROCEDURE SUB1
   END INTERFACE
   CONTAINS
      SUBROUTINE SUB1(I)
         INTEGER I
         I = I + 1
      END SUBROUTINE SUB1
END MODULE MC
PROGRAM ABC
   USE MC
   K = 5
   CALL GEN(K)                ! SUB1 referenced because GEN has public
                              !   accessibility and appropriate argument
                              !   is passed
   PRINT *, K                 ! Value printed is 6
END PROGRAM

関連情報


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]