ClassA* result = dynamic_cast<ClassA*>(a);
如果ptr为null, 就说明pool[0]不是a类型的对象, 这种方法不能判断父类, 比如a继承自b, 而判断a和b的混合时, 此ptr都能通过....
const char* classNameA = typeid(*a).name()
可以得到a对象的构造类型
const char* classNameB = typeid(a).name()
可以得到a对象的定义类型
typeid返回的是有唯一编号的, 并不是完全的纯粹class名称, 所以用作比较的话是没问题, 但是你直接和类的字符串划等号是不行的
如果子类和父类进行区分, 也可以设置父类protect变量类型, 来处理