Fortran 2003 入門

ナビゲーション:前へ   上へ   次へ

8.9 構造体構成子構文の機能強化

Fortran 2003では構造体構成子に対する3つの機能強化があります:
  1. 仮引数名が引数キーワードとして利用できるのと同じように、成分名がキーワードとして使用できます。
  2. デフォルトの初期化を持つ成分に対しては値を省略できます。
  3. 型名が総称関数名と同じでも良く、 参照は(構文が関数の引数並びと一致すれば)適切な関数を選択することにより、 また実引数と一致する関数がなかった場合にのみ構造体構造子として扱うことにより解決されます。

これにより構造体構成子は必要に応じてオーバーライド可能な組込み型総称関数のようになります。 これらの3つの機能強化の例を次に示します。

  TYPE quaternion
    REAL x=0,ix=0,jx=0,kx=0
  END TYPE
  ...
  INTERFACE quaternion
    MODULE PROCEDURE quat_from_complex
  END INTERFACE
  ...
  TYPE(quaternion) FUNCTION quat_from_complex(c) RESULT(r)
    COMPLEX c
    r%x = REAL(c)
    r%y = AIMAG(c)
    r%z = 0
    r%a = 0
  END FUNCTION
  ...
  COMPLEX c
  TYPE(quaternion) q
  q = quaternion(3.14159265)  ! Structure constructor, value (pi,0,0,0)
  q = quaternion(jx=1)        ! Structure constructor, value (0,0,1,0)
  q = quaternion(c)           ! "Constructor" function quat_from_complex



ナビゲーション:前へ   上へ   次へ
関連情報
ご案内
© 譌・譛ャ繝九Η繝シ繝。繝ェ繧ォ繝ォ繧「繝ォ繧エ繝ェ繧コ繝�繧コ繧ー繝ォ繝シ繝玲�ェ蠑丈シ夂、セ 2025
Privacy Policy  /  Trademarks