次の方法で共有


変換

別の型のオブジェクトに対して特定のクラス型のオブジェクトに変換できます。これによりターゲット オブジェクトにソース クラス型の前クラス型の構築結果をコピーしてされます。このプロセスはコンストラクターによって変換と呼ばれます。オブジェクトはユーザーが指定した変換関数に変換できます。

標準変換 (標準変換 を参照してください) 指定した型からクラス型に完全に変換できない場合コンパイラはジョブを完了するためにユーザー定義変換を選択できます。明示的な型変換に加えて次の場合に発生します :

  • 初期化子式は初期化同じオブジェクト型ではありません。

  • 関数呼び出しで使用される引数の型は関数宣言に指定された引数の型と一致しません。

  • 関数から返されるオブジェクトの型は関数宣言で指定した戻り値の型と一致しません。

  • 2 種類の式のオペランドが同じ型である必要があります。

  • イテレーションまたは選択ステートメントを制御する式は指定された別の型が必要です。

ユーザー定義の変換が明確である場合のみ適用されます ; それ以外の場合はエラー メッセージが生成されます。あいまいさを使用した時点でがチェックされます。そのためあいまいさが生じる機能を使用しない場合クラスはあいまいさが指定されエラーを生成できます。あいまいさが発生する多くの場合もありますがこれらはあいまいさの 2 種類の原因となる :

  • クラス型は多重継承を使用して派生し変換の選択した基本クラスから明確ではありません (あいまいさ を参照してください。

  • 同じ変換に明示的な型変換演算子とコンストラクターが存在しています (変換関数 を参照してください。

コンストラクターによる変換し変換関数による変換はアクセスコントロール に説明されているようにアクセス制御規則に従います。アクセス制御とは変換が明確であることが確認された後にテストされます。

詳細については変換のコンストラクター を参照してください。

参照

関連項目

特殊なメンバー関数 (C++)