ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
プログラム実行時に型の情報を得る機能のこと。RTTIともいう。
C++のようなオブジェクト指向プログラミング言語では、ポリモルフィズムに対応している。
この機能では、実行されるまで型が分からないオブジェクトが存在しうる。
このような場合、コンパイル時点ではその型が分からないため、実行時型情報という機能を用い、実行中にその型を調べる必要が生じる。
C++の場合、次のようなものが該当する。
また、ISO/IEC 14882:2011(C++11)からは以下が追加される。
プログラムサイズの増加や実行速度の低下など、パフォーマンスを落とすので、処理系によっては指定無しの場合は無効になっていることもある。
dynamic_castを使えば型キャスト(型変換)が可能。
これはstatic_castとは違い、コンパイルの時点では型が分からないので、実行段階で処理が行なわれる。そのためのコードとそれを呼び出すコードは実行ファイルに含まれることになるため、その分のサイズと処理速度のコストがある。管理情報としてtype_infoクラスも含まれるため、その分のサイズも増えることになる。
処理速度については、static_castは単なるコンパイラーへの指示に過ぎずバイナリ段階では何も残らないため0と考えられるが、dynamic_castはコンパイラーによってはかなりの時間を要するようである。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます