Fortran Builder Logo
Fortran Builder
関連情報

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

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



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

Results matter. Trust NAG.
Privacy Policy | Trademarks