在C++面向对象程序设计中有时候需要判断某个对象的类类型,那么可以有下列两种方法:
方法1: 采用 typeid()函数进行判断:(缺点:当存在继承并且子类指针赋值给父类指针時,此时判断的对象类型为父类型而不是子类类型)
对于一个父类CFather,其有两个子类CChildOne,CChildTwo那么如何判断一个对象的类类型。如:
但是这种方法好像存在问题:如CFirstChild类是CSuper的子类:
方法2:最好的方法是定义虚函数返回类类型
在运行时类型识别最简单的办法就是所有的类(父类和子類)实现一个虚方法返回类名字,根据返回类名字再利用typeid()进行判断如:
这样在使用的时候直接调用该虚函数GetClassType()就可以返回相应的类名称,采用typeid()就可以判断其相应的类型了如:
一门初级、C++语法教程适合于所囿初学者,听者必懂带领学员从小白逐渐进阶位高手。
一门初级、C++语法教程适合于所有初学者,听者必懂带领学员从小白逐渐进阶位高手。
一门初级、C++语法教程适合于所有初学者,听者必懂带领学员从小白逐渐进阶位高手。
一门初级、C++语法教程适合于所有初学鍺,听者必懂带领学员从小白逐渐进阶位高手。
一门初级、C++语法教程适合于所有初学者,听者必懂带领学员从小白逐渐进阶位高手。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。