ナビゲーション:前へ 上へ 次へ
例:
例:
8.2 名前付き手続きポインタ
手続きポインタはPOINTER属性を持つ手続きで、 名前付きポインタもしくは構造体成分(他で説明されています)であり得ます。 手続きポインタを宣言する通常の方法は、手続き宣言文にPOINTER節を含める方法です。例:
PROCEDURE(aname),POINTER :: p => NULL()これはPが引用仕様ANAMEを持つ手続きポインタとして宣言し、 それを遊離状態ポインタとして初期化します。
名前付き手続きポインタは通常の手続き宣言の他にPOINTER属性を指定して宣言 することもできます。例えば型宣言文により宣言された関数は、 型宣言中にPOINTER属性が含まれている場合には関数ポインタになります。
REAL, EXTERNAL, POINTER :: funptrPOINTER文も引用仕様ブロック、EXTERNAL文、 もしくは型宣言文と併用することにより、手続きポインタを宣言するのに使用することができます。
例:
INTERFACE SUBROUTINE sub(a,b) REAL,INTENT(INOUT) :: a,b END SUBROUTINE END INTERFACE POINTER sub
手続きポインタを手続きポインタ成分として構造型中に格納することもできます。
構文と動作は若干異なり、“オブジェクト結束手続き”のように振る舞います。
ナビゲーション:前へ 上へ 次へ