#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