c++ 动态判断基类指针指向的子类类型(typeid)

c++ 动态判断基类指针指向的子类类型(typeid)

我们在程序中定义了一个基类,该基类有n个子类,为了方便,我们经常定义一个基类的指针数组,数组中的每一项指向都指向一个子类,那么在程序中我们如何判断这些基类指针是指向哪个子类呢?

Base * pf;
Derived s1;
pf = &s1;
//cout << typeid(*pf).name() << endl;


if (strcmp(typeid(Derived).name(), typeid(*pf).name()) == 0)
{
cout << "this is Derived class";
}
else
{
cout << "not is Derived class";
}

你可能感兴趣的:(c++学习问题记录)