次の方法で共有


type_info クラス

type_info のクラスはプログラム内に生成するタイプ情報について説明します。このクラスのオブジェクトは型の名前を効果的にポインターを格納します。type_info のクラスは等価の 2 種類の比較または順序を照合するために適したエンコードされた値を格納します。型のエンコーディング規則と照合順序が指定されていないためプログラム間で異なる場合があります。

<typeinfo> のヘッダー ファイルが type_info のクラスを使用する含める必要があります。type_info クラスのインターフェイスは次のとおりです :

class type_info {
public:
    virtual ~type_info();
    size_t hash_code() const
    _CRTIMP_PURE bool operator==(const type_info& rhs) const;
    _CRTIMP_PURE bool operator!=(const type_info& rhs) const;
    _CRTIMP_PURE int before(const type_info& rhs) const;
    _CRTIMP_PURE const char* name() const;
    _CRTIMP_PURE const char* raw_name() const;
};

クラスのプライベート コピー コンストラクターがであるので type_info クラスのオブジェクトを直接インスタンス化することはできません。() type_info の一時オブジェクトを構築する唯一の方法はtypeid の演算子を使用します。代入演算子がprivate であるためクラス type_info のオブジェクトをコピーするかまたは割り当てることはできません。

type_info:: hash_code はインデックス値の分布に型 typeinfo の値を割り当てるために適したハッシュ関数を定義します。

type_info のオブジェクトとの等価および非等価を比較するために == と != 演算子が個別に使用することができます。

型の照合順序との間に継承関係リンクはありません。型の照合順序を決定するために type_info:: には のメンバー関数を使用します。type_info:: には が同じの別のプログラムや実行プログラムで同じ結果を生成するという保証はありません。これによりtype_info:: には は () のアドレス演算子に似ています。

type_info:: 名前 のメンバー関数は型の人が判読できる名前を表す null で終わる文字列を const char* を返します。が指すメモリはキャッシュされ直接を解放する必要があります。

type_info:: raw_name のメンバー関数はオブジェクトの種類の装飾名を表す null で終わる文字列を const char* を返します。名前は装飾された形式で実際に領域を節約するために保存されます。そのためこの関数はを使って名前を指定する必要がないため type_info:: 名前 高速です。type_info:: raw_name の関数によって返される文字列は便利な相対的に操作では読み取ることができなくなります。ユーザーが判読できる文字列が必要な場合はtype_info:: 名前 の関数を使用します。

型情報はポリモーフィック クラスに /GR (有効の実行時の型情報) コンパイラ オプションを指定した場合にだけ作成されます。

参照

関連項目

実行時の型情報