typeid操作符

本文深入探讨了C++中的typeid操作符,包括其基本用法、如何通过基类指针获取实际对象类型以及输出结果解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


typeid是C++的一个操作符。

typeid操作符的返回结果是名为type_info,ISO C++标准并没有确切定义type_info,它的确切定义编译器相关的。

  • typeid(基类指针),则表示此指针;

       基类至少有一个virtual类型函数,则:
  • typeid(*基类指针),则表示此指针所指对象的实际类型,可以得到派生类的类型;
  • typeid(基类引用),则可以得到派生类的类型;


#include <iostream>

using namespace std;
class base
{
public:
virtual ~base(){} -------- 基类至少得有一个virtual函数,也可以是virtual函数,才能typeid(*pb)获取实际所指内容类型,否则返回基类类型。

};

class test : public base
{
};

int main()
{
base *pb=new test;
base b;
cout << typeid(pb).name() << endl;
cout << typeid(*pb).name() << endl;
cout << typeid(b).name() << endl;
}


输出为
P4base
4test
4base

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值