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