利用typeid可以在程序运行时对变量或者对象的实际类型进行识别,并针对识别出来的类型进行一些特殊处理。
typeid在多态中的一个重要用途就是识别多态运行过程中基类指针或引用实际指向的对象类型,并针对识别出来的类型做出不同的处理。
#include<iostream>
using namespace std;
class A{};
/* 用typeid来判定数据的类型*/
void main()
{
A a;
A &rA=a;//一个a的引用
cout<<"1: "<<typeid(a).name()<<endl;
cout<<"2: "<<typeid('p').name()<<endl;
cout<<"3: "<<typeid(rA).name()<<endl;
cout<<"4: "<<typeid(3).name()<<endl;
cout<<"5: "<<typeid("this is a string").name()<<endl;
cout<<"6: "<<typeid(4+111.33).name()<<endl;
cout<<"以上是用typeid().name()判定数据类型id"<<endl;
}
参考资料: 杜茂康等著的《c++面向对象程序设计》
本文详细介绍了如何使用C++中的typeid函数在运行时识别对象的实际类型,特别关注其在多态环境下的应用。通过实例演示了如何获取不同数据类型的typeid,并解释了如何针对识别出的类型进行不同处理。
1769

被折叠的 条评论
为什么被折叠?



