程序:
#include<iostream>
#include<typeinfo>
using namespace std;
class Base
{
public:virtual void func(){}
};
class Derived1 : public Base {};
int main()
{
Derived1 d;
cout<<typeid(d).name()<<endl;
return 0;
}
输出:
8Derived1
这个数字 8 是什么?
编译器:g ++ - 4.8.4-2ubuntu1~14.04
答案 0 :(得分:2)
它是实现定义的,没有固有的含义。检查std::typeinfo::name() reference:
返回一个实现定义的以null结尾的字符串,其中包含该类型的名称。没有给出任何保证,特别是返回的字符串对于几种类型可以是相同的,并且在相同程序的调用之间进行更改。