alias this
alias
とthis
のキーワードの個々の意味は、前の章で説明した。これらの2つのキーワードは、alias this
として一緒に使用されると、完全に異なる意味を持つ。
alias this
は、ユーザー定義型の自動型変換(暗黙の型変換とも呼ばれる)を有効にする。演算子オーバーロードの章で見たように、型に型変換を提供する別の方法は、その型に対してopCast
を定義することだ。違いは、opCast
は明示的な型変換用であるのに対し、alias this
は自動型変換用であることだ。
キーワードalias
とthis
は、メンバー変数またはメンバー関数の名前がそれらの間に指定されている場合に、別々に記述される。
alias this
は、ユーザー定義型からそのメンバーの型への特定の変換を有効にする。メンバーの値は、変換の結果の値になる。
次のFraction
の例では、メンバー関数で alias this
を使用している。さらに下のTeachingAssistant
の例では、メンバー変数で使用している。
以下のvalue()
の戻り値の型はdouble
であるため、次のalias this
により、Fraction
オブジェクトがdouble
値に自動的に変換される。
value()
が自動的に呼び出され、double
値が期待される場所にFraction
オブジェクトが現れると、double
値が生成される。そのため、変数fraction
をcalculate()
の引数として渡すことができる。value()
は1/4の値として0.25を返し、プログラムは2 * 0.25 + 0.75の結果を出力する。
1.25