実行時型情報(RTTI)の概要

提供: Appmethod Topics
移動先: 案内検索

実行時型情報(RTTI):インデックス への移動

実行時型情報(Run-time type identification: RTTI)を使うと,実行時にデータオブジェクトの実際の型を定義できる移植可能なコードを(コードがデータオブジェクトへのポインタや参照だけにアクセスする場合でも)作成できます。たとえば,仮想基本クラスを指すポインタを,実際のオブジェクトの派生型を指すポインタへ変換することも可能になります。実行時にキャストするときは,dynamic_cast 演算子を使います。

RTTI 機構を使うと,オブジェクトが特定の型かどうか,および 2 つのオブジェクトが同じ型かどうかがチェックできます。これは typeid 演算子を使って行います。この演算子は指定されている引数の実際の型を判断し,const typeinfo 型のオブジェクトへの参照を返します。このオブジェクトは型を表しています。

また,typeid の引数として型名を使うこともできます。この場合,typeid はその型に対応する const typeinfo 型のオブジェクトへの参照を返します。type_info クラスでは,== 演算子と != 演算子によって 2 つのオブジェクトが同じ型となっているかどうかを調べられます。typeinfo クラスでは,型の名前を保持する文字列を指すポインタを返すメンバー関数も提供されています。

関連項目