用函数实现typeid相同功能
时间: 2024-02-17 19:01:19 浏览: 127
在 C++ 中,我们可以使用 `typeid` 运算符来获取一个对象或类型的 `type_info` 类型的信息。如果要用函数实现 `typeid` 相同的功能,可以定义一个函数模板来获取类型信息,示例如下:
```cpp
#include <typeinfo>
template<typename T>
const std::type_info& getType(const T& value)
{
return typeid(value);
}
```
该函数模板接受一个参数 `value`,使用 `typeid` 运算符获取该类型的 `type_info` 信息,并返回该信息。使用该函数模板获取类型信息的示例如下:
```cpp
int main()
{
int a = 10;
float b = 3.14;
std::string c = "Hello, world!";
const std::type_info& typeA = getType(a);
const std::type_info& typeB = getType(b);
const std::type_info& typeC = getType(c);
std::cout << "Type of a: " << typeA.name() << std::endl;
std::cout << "Type of b: " << typeB.name() << std::endl;
std::cout << "Type of c: " << typeC.name() << std::endl;
return 0;
}
```
该程序将输出各个变量的类型信息,与使用 `typeid` 运算符获取的结果相同。
阅读全文