【发布时间】:2010-10-21 19:45:58
【问题描述】:
class foo
{
public:
void say_type_name()
{
std::cout << typeid(this).name() << std::endl;
}
};
int main()
{
foo f;;
f.say_type_name();
}
上面的代码使用 g++ 在我的 ubuntu 机器上打印 P3foo。我不明白为什么它打印 P3foo 而不仅仅是 foo。如果我像
这样更改代码 std::cout << typeid(*this).name() << std::endl;
它打印 3foo。
有什么想法吗?
【问题讨论】:
标签: c++ g++ name-mangling typeid