📅  最后修改于: 2023-12-03 15:08:35.118000             🧑  作者: Mango
在 C++ 中,要知道某个变量或表达式的数据类型,有以下几种方法。
typeid 运算符可以返回一个 type_info 对象,该对象包含有关类型的信息。例如:
#include <typeinfo>
#include <iostream>
int main() {
int x = 0;
std::cout << typeid(x).name() << std::endl; // 输出 i,表示 int 类型
return 0;
}
注意,typeid 返回的字符串可能是由编译器定义的实现特定的名字,而非标准名字。
decltype 关键字可以返回一个表达式的类型。例如:
#include <iostream>
int main() {
int x = 0;
std::cout << typeid(decltype(x * 2)).name() << std::endl; // 输出 i,表示 int 类型
return 0;
}
如果我们已知一个变量或表达式的类型,可以通过类型转换将其转换为一个 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++ 中知道某物的数据类型的几种方法,可以根据实际情况选择合适的方法使用。