ホームページ >バックエンド開発 >C++ >C++ での typeid の使用法

C++ での typeid の使用法

下次还敢
下次还敢オリジナル
2024-05-01 11:42:17748ブラウズ

typeid 演算子は、オブジェクトの静的型情報を取得し、型名、サイズ、配置、基本クラス、修飾子、その他の情報を含む type_info オブジェクトを返します。オブジェクト情報には、name()、before()、base() などのメソッドを通じてアクセスできます。

C++ での typeid の使用法

C での typeid の使用

typeid 演算子は、オブジェクトの静的プロパティを取得するために使用される C キーワードです。タイプ情報。オブジェクト タイプに関するさまざまな情報を含む type_info オブジェクトを返します。

使用法:

typeid 演算子の後には、型情報を取得する式を表す式が続きます。式は次のとおりです:

    #Variable
  • Expression
  • Function return type
  • Type alias
#構文:

<code class="cpp">typeid(expression) // 其中 expression 是要获取其类型信息的表达式</code>

戻り値:

typeid 演算子は、オブジェクト タイプに関する次の情報を含む type_info オブジェクトを返します:

型名
  • 型サイズ
  • 型アライメント
  • 型派生情報
  • 型基本情報
  • 型修飾子情報
  • 型変更情報
  • 次のメソッドを通じて type_info オブジェクト内の情報にアクセスできます:

name(): 型名を返します
  • before() と after(): 派生クラスから基本クラスを取得し、基本クラスから派生クラスを取得します。
  • base(): 直接の基本クラスを返します
  • grow () および shrin(): 型名の配列サイズを変更します。
  • modifier(): 型修飾子を返します。
例:

<code class="cpp">int main() {
  int x;
  std::string s;
  std::cout << typeid(x).name() << std::endl; // 输出:int
  std::cout << typeid(s).name() << std::endl; // 输出:std::__cxx11::basic_string<char>
  return 0;
}</code>

注:

#typeid 演算子は、静的な型情報でのみ使用できます。オブジェクトの実行時型情報を取得するために使用することはできません。
  • typeid 演算子の結果は、コンパイラとプラットフォームによって異なる場合があります。
  • typeid 演算子にはオーバーヘッドはほとんどありませんが、頻繁に使用するとパフォーマンスが低下する可能性があります。

以上がC++ での typeid の使用法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。