在c++中,如何找到变量的类型?
当前回答
通常,想要在c++中找到变量的类型是一个错误的问题。它往往是从过程性语言(例如C或Pascal)中继承下来的。
如果你想根据类型编写不同的行为,试着学习例如函数重载和对象继承。在你学习c++的第一天,这不会马上有意义,但请坚持下去。
其他回答
你可以使用typeid操作符:
#include <typeinfo>
...
cout << typeid(variable).name() << endl;
带有abi::__cxa_demangle()的typeid操作符(仅GCC / Clang)
#include <iostream>
#include <typeinfo>
#if defined __GNUC__
#include <cxxabi.h> // GCC / Clang only
#endif
int main() {
long long w;
std::cout << typeid(w).name() << std::endl; // x
#if defined __GNUC__ // GCC / Clang only
char * name = abi::__cxa_demangle(typeid(w).name(), 0, 0, 0);
std::cout << name << std::endl; // long long
free(name);
#endif
}
叮当在线
如果你有一个变量
int k;
你可以使用它来获取它的类型
cout << typeid(k).name() << endl;
请看下面关于SO的帖子:类似的问题
#include <typeinfo>
...
string s = typeid(YourClass).name()
通常,想要在c++中找到变量的类型是一个错误的问题。它往往是从过程性语言(例如C或Pascal)中继承下来的。
如果你想根据类型编写不同的行为,试着学习例如函数重载和对象继承。在你学习c++的第一天,这不会马上有意义,但请坚持下去。