【发布时间】:2015-12-18 18:25:27
【问题描述】:
程序:
#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
【问题讨论】:
-
我不认为答案,问题
8代表名称中的字符数。 -
@ShafikYaghmour 好吧,这可能是一种实现(返回其大小 + 名称),但 c++ 规范不保证:“返回一个实现定义的以空字符结尾的字符串,其中包含类型。不提供任何保证 (...)"
-
@DavidNogueira OP 专门询问 gcc,如问题中所述
-
@ShafikYaghmour 确实,我无法提供有关 g++-4.8.4-2 实现的更多详细信息。
标签: c++ inheritance typeid