创作人QQ:851301776,邮箱:[email protected],欢迎大家一起技术交流,本博客主要是自己学习的心得体会,只为每天进步一点点!
个人座右铭:
1.没有横空出世,只要厚积一定发。
2.你可以学历不高,你可以不上学,但你不能不学习
一、运行时类型信息
1 typeid操作符
#include <typeinfo>
typeid(类型/对象);
返回typeinfo类型的对象,用于描述类型信息,在typeinfo类中包含name成员函数,可以获取字符串形式类型信息。
typeinfo了提供了"==""!="操作符重载,通过它们可以进行类型之间的比较,如果类型之间存在多态的继承关系,typeid还可以利用多态的特性确定实际对象的类型。
#include <iostream>
#include <typeinfo>
using namespace std;
class A{ virtual void func(){} };
class B:public A{ void func(){} };
class C:public A{ void func(){} };
void foo(A& a){
if(typeid(a) == typeid(B)){
cout << "针对子类B的处理" << endl;
}
else if(typeid(a) == typeid(C)){
cout << "针对子类C的处理" << endl;
}
}
int main(void)
{
int num