最近在做测试,在大型程序中,模板类型加上继承关系搞得我混乱,还好有tpyeinfo帮助捋顺关系。
typeInfo与typeid简单总结说明:
- 和sizeof这类的操作符一样,typeid是C++的关键字之一。
- typeid操作符的返回结果是名为type_info的标准库类型的对象的引用(在头文件typeinfo中定义)
- C++并没有规定typeid实现标准,各个编译器可能会不一样。
- 编译器会为每一种typeid操作的类型生成一份保存在数据段的type_info数据。
- 每种类型的type_info数据长度依赖于类型名称,至少9个字节。
1. == 和!=操作
判断两个数据类型是否相同,判定的数据可以是自己定义的数据类型。
代码示例:
#include <iostream> // std::cout
#include <typeinfo> // operator typeid
struct Base {
};
struct Derived : Base {
};
struct Poly_Base {
virtual void Member(){
}};
struct Poly_Derived: Poly_Base {
};
typedef int my_int_type;
int main() {
std::cout << std::boolalpha;
// fundamental types:
std::cout << "int vs my_int_type: ";
std::cout << ( typeid

本文详细介绍了C++中的typeid关键字和type_info类,用于检查和获取类型信息。通过示例展示了如何使用typeid进行类型比较以及获取类型名称,并讨论了其在不同编译器下的表现。同时,提供了使用typeid进行类型比较和输出类型名称的代码实例。

4850

被折叠的 条评论
为什么被折叠?



