C++:为什么struct的self指针自动变为void*

Sto*_*one 5 c++ struct gdb pointers

struct ptr{
    int node;
    ptr *next;
    ptr(){}
    ptr(int _node, ptr *_next){ node=_node; next=_next; }
};
struct list_t{
    ptr *sht;
    int size;
    void push(int node){
        size++;
        sht=new ptr(node,sht);
    }
}shthead[100001], comp[200001], tree[200001];
Run Code Online (Sandbox Code Playgroud)

struct ptr用作链表.但是当我在gdb中调试代码时,我发现ptr*都被转换为void*.
GDB输出:

(gdb) pt ptr
type = struct ptr {
    int node;
    void *next;
  public:
    ptr(void);
    ptr(int, void *);
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我将它们转换回gdb中的ptr*,我仍然可以看到结构的数据.
请问这是什么原因?

我正在使用Arch Linux,GNOME,g ++ 4.5.0,gdb 7.1.没有任何编译标志但是-g.
This GDB was configured as "i686-pc-linux-gnu"

Sto*_*one 1

也许是这样的:http ://gcc.gnu.org/bugzilla/show_bug.cgi?id=45088

我要感谢汤姆·特罗米告诉我这些。