相关疑难解决方法(0)

typeid()在g ++中返回额外的字符

class foo
{
public:
  void say_type_name()
  {
    std::cout << typeid(this).name() << std::endl;
  }
};

int main()
{
  foo f;;
  f.say_type_name();
}
Run Code Online (Sandbox Code Playgroud)

上面的代码在我的ubuntu机器上用g ++ 打印P3foo.我不知道它为什么打印P3foo而不仅仅是foo.如果我改变代码就好

    std::cout << typeid(*this).name() << std::endl;
Run Code Online (Sandbox Code Playgroud)

它打印3foo.

有什么想法吗?

c++ g++ name-mangling typeid

17
推荐指数
2
解决办法
1万
查看次数

标签 统计

c++ ×1

g++ ×1

name-mangling ×1

typeid ×1