c++中typeid

#include "iostream"
#include "typeinfo"

using namespace std;

class A{

};


class B : public A{

};


int main(void){
    A a;
    B b;

    A *pa = &a;
    B *pb = &b;
    A *paa = &b;

    std::cout << typeid(a).name() << std::endl;
    std::cout << typeid(pa).name() << std::endl;
    
    std::cout << typeid(b).name() << std::endl;
    std::cout << typeid(pb).name() << std::endl;
    
    //虽然指向子类,但还是显示父类名称
    std::cout << typeid(paa).name() << std::endl;

    return 0;
}

结果
 

$ ./a.exe
1A
P1A
1B
P1B
P1A

猜你喜欢

转载自blog.csdn.net/wulong710/article/details/81381723