c++判断typeid和size
时间: 2023-09-21 12:01:08 浏览: 230
C++ 中的`typeid`是用于获取对象的类型信息的运算符,它返回一个`std::type_info`对象,用于表示被查询类型的标识符。`typeid`可以用来检查两个类型是否相同,但不具备检查派生关系的能力。
`size()`在问题中应该指的是`sizeof`操作符,它用于获取对象或类型的大小(以字节为单位)。`sizeof`是一个编译时运算符,它在编译时计算并返回数据类型、对象或表达式的大小。需要注意的是,`sizeof`的结果是编译时确定的,不会因为实际分配内存的大小而改变。
使用`typeid`可以通过检查返回的`std::type_info`对象来判断两个类型是否相同,示例代码如下:
```cpp
#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`操作符用于获取某个类型或对象的大小,示例代码如下:
```cpp
#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`的大小。
阅读全文