这个数字与我的typeid有什么关系?

时间:2015-12-18 18:25:27

标签: c++ inheritance typeid

程序:

#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

1 个答案:

答案 0 :(得分:2)

它是实现定义的,没有固有的含义。检查std::typeinfo::name() reference

  

返回一个实现定义的以null结尾的字符串,其中包含该类型的名称。没有给出任何保证,特别是返回的字符串对于几种类型可以是相同的,并且在相同程序的调用之间进行更改。