📜  如何在 C++ 中知道某物的数据类型(1)

📅  最后修改于: 2023-12-03 15:08:35.118000             🧑  作者: Mango

如何在 C++ 中知道某物的数据类型

在 C++ 中,要知道某个变量或表达式的数据类型,有以下几种方法。

1. 使用 typeid 运算符

typeid 运算符可以返回一个 type_info 对象,该对象包含有关类型的信息。例如:

#include <typeinfo>
#include <iostream>

int main() {
  int x = 0;
  std::cout << typeid(x).name() << std::endl;  // 输出 i,表示 int 类型
  return 0;
}

注意,typeid 返回的字符串可能是由编译器定义的实现特定的名字,而非标准名字。

2. 使用 decltype 关键字

decltype 关键字可以返回一个表达式的类型。例如:

#include <iostream>

int main() {
  int x = 0;
  std::cout << typeid(decltype(x * 2)).name() << std::endl;  // 输出 i,表示 int 类型
  return 0;
}
3. 使用类型转换

如果我们已知一个变量或表达式的类型,可以通过类型转换将其转换为一个 type_info 对象。例如:

#include <typeinfo>
#include <iostream>

int main() {
  int x = 0;
  const std::type_info& type = typeid(x);  // 转换为 type_info 对象
  if (type == typeid(int)) {
    std::cout << "x is an int" << std::endl;
  }
  return 0;
}

以上是在 C++ 中知道某物的数据类型的几种方法,可以根据实际情况选择合适的方法使用。