温故而知新十(C++)

创作人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 

猜你喜欢

转载自blog.csdn.net/weixin_43155199/article/details/125632692