typeid是C++中用于返回指针或引用所指对象的实际类型。那么应该如何正确的使用它呢?本文将进行叙述,希望能够帮助到你。
工具/原料
C++
方法/步骤
1
首先定义实现两个类,他们之间是继承的关系,但是不存在多态的特性
2
然后定义子类对象,将该对象赋值给父类的引用,再调用typeid查看变量的实际类型
3
从输出的结果看,typeid输出的类型是父类,这是因为两个类之间没有多态特性的缘故
4
通过typeid返回的实际类型与其他变量返回的实际类型进行比较,最后确定两个变量是否是同一个类型
5
从输出结果看,没有多态特性的两个类,父类虽然指向子类的引用,但是父类的类型还是Base
6
实现下图所示的两个类,两个类之间存在多态的特性
7
再次定义子类对象,将该对象赋值给父类的引用,再调用typeid的函数name查看变量的实际类型
8
从输出结果看,父类指向子类的引用,父类返回的实际类型就是子类类型
9
最后按照下图红色方框标示的代码段来判断两个变量是否是同一类型
10
最后可以看到,父类指向子类的引用,typeid返回的类型不是父类的类型
注意事项
1
喜欢经验欢迎点赞投票!
上一篇:捷豹音响改装升级案例
下一篇:捷豹专用行车记录仪