c++判断typeid和size
时间: 2023-09-21 17:01:08 浏览: 247
C++ 中的typeid
是用于获取对象的类型信息的运算符,它返回一个std::type_info
对象,用于表示被查询类型的标识符。typeid
可以用来检查两个类型是否相同,但不具备检查派生关系的能力。
size()
在问题中应该指的是sizeof
操作符,它用于获取对象或类型的大小(以字节为单位)。sizeof
是一个编译时运算符,它在编译时计算并返回数据类型、对象或表达式的大小。需要注意的是,sizeof
的结果是编译时确定的,不会因为实际分配内存的大小而改变。
使用typeid
可以通过检查返回的std::type_info
对象来判断两个类型是否相同,示例代码如下:
#include <iostream>
#include <typeinfo>
class A {};
class B {};
int main() {
A obj1;
B obj2;
if (typeid(obj1) == typeid(obj2)) {
std::cout << "obj1 and obj2 have the same type" << std::endl;
} else {
std::cout << "obj1 and obj2 have different types" << std::endl;
}
return 0;
}
上述代码中,typeid(obj1) == typeid(obj2)
的比较结果将判断obj1
和obj2
是否属于相同的类型。
而sizeof
操作符用于获取某个类型或对象的大小,示例代码如下:
#include <iostream>
class A {
int a;
char b;
double c;
};
int main() {
std::cout << "The size of A object is: " << sizeof(A) << " bytes" << std::endl;
A obj;
std::cout << "The size of obj is: " << sizeof(obj) << " bytes" << std::endl;
return 0;
}
上述代码中,sizeof(A)
计算并返回类A
的大小,sizeof(obj)
计算并返回对象obj
的大小。
相关推荐















