typeid是C++顶用于返回指针或引用所指对象的现实类型。那么应该若何准确的利用它呢?本文将进行论述,但愿可以或许帮忙到你。
起首界说实现两个类,他们之间是担当的关系,可是不存在多态的特征
然后界说子类对象,将该对象赋值给父类的引用,再挪用typeid查看变量的现实类型
从输出的成果看,typeid输出的类型是父类,这是因为两个类之间没有多态特征的缘故
经由过程typeid返回的现实类型与其他变量返回的现实类型进行比力,最后确定两个变量是否是统一个类型
从输出成果看,没有多态特征的两个类,父类固然指标的目的子类的引用,可是父类的类型仍是Base
实现下图所示的两个类,两个类之间存在多态的特征
再次界说子类对象,将该对象赋值给父类的引用,再挪用typeid的函数name查看变量的现实类型
从输出成果看,父类指标的目的子类的引用,父类返回的现实类型就是子类类型
最后按照下图红色方框标示的代码段来判定两个变量是否是统一类型
最后可以看到,父类指标的目的子类的引用,typeid返回的类型不是父类的类型
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!