実行時型情報
読み:じっこうじかたじょうほう
外語:RTTI: Run Time Type Information
プログラム実行時に型の情報を得る機能のこと。RTTIともいう。
概要
C++のようなオブジェクト指向プログラミング言語では、ポリモルフィズムに対応している。
この機能では、実行されるまで型が分からないオブジェクトが存在しうる。
このような場合、コンパイル時点ではその型が分からないため、実行時型情報という機能を用い、実行中にその型を調べる必要が生じる。
特徴
該当
C++の場合、次のようなものが該当する。
また、ISO/IEC 14882:2011(C++11)からは以下が追加される。
プログラムサイズの増加や実行速度の低下など、パフォーマンスを落とすので、処理系によっては指定無しの場合は無効になっていることもある。
処理コスト
dynamic_castを使えば型キャスト(型変換)が可能。
これはstatic_castとは違い、コンパイルの時点では型が分からないので、実行段階で処理が行なわれる。そのためのコードとそれを呼び出すコードは実行ファイルに含まれることになるため、その分のサイズと処理速度のコストがある。管理情報としてtype_infoクラスも含まれるため、その分のサイズも増えることになる。
処理速度については、static_castは単なるコンパイラーへの指示に過ぎずバイナリ段階では何も残らないため0と考えられるが、dynamic_castはコンパイラーによってはかなりの時間を要するようである。
再検索