学堂 学堂 学堂公众号手机端

C++中的typeid是一个运算符,用于获取一个表达式的类型信息。它的作用是返回一个std::type_info对象,该对象包含了表达式的类型信息,包括类型的名称。 typeid通常与dynamic_cast和std::type_info一起使用,用于在运行时识别对象的实际类型,从而实现多态性。 下面是typeid

lewis 1年前 (2024-03-28) 阅读数 4 #技术

C++中的typeid是一个运算符,用于获取一个表达式的类型信息。它的作用是返回一个std::type_info对象,该对象包含了表达式的类型信息,包括类型的名称。

typeid通常与dynamic_caststd::type_info一起使用,用于在运行时识别对象的实际类型,从而实现多态性。

下面是typeid的使用示例:


#include<iostream> #include<typeinfo> classBase{ virtualvoidfoo(){} }; classDerived:publicBase{}; intmain(){ Base*basePtr=newDerived(); //使用typeid获取basePtr所指对象的类型信息 conststd::type_info&type=typeid(*basePtr); //打印类型的名称 std::cout<<"Objecttype:"<<type.name()<<std::endl; //使用typeid进行类型判断 if(type==typeid(Base)){ std::cout<<"ObjectisoftypeBase"<<std::endl; } elseif(type==typeid(Derived)){ std::cout<<"ObjectisoftypeDerived"<<std::endl; } deletebasePtr; return0; }

输出结果:

Objecttype:classDerived ObjectisoftypeDerived

在上面的示例中,typeid(*basePtr)返回的type_info对象的名称为"classDerived",表示basePtr所指的对象的实际类型是Derived

版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门