c++中判断指针类型对象

来源:互联网 发布:check windows version 编辑:程序博客网 时间:2024/06/05 17:51

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变量类型, 来处理

0 0
原创粉丝点击