关于对象多态的类型转换

wolfman peter{}; void *ptr = &peter; wolf *pwolf = (wolf*)ptr; man *pman = (man*)ptr;
已知wolf(狼)、man(人)为父类,wolfman(狼人)同时继承了它们两个
这里的ptr是一个无类型的指针,也就是它就是一个单纯的值
第三行代码把这个值显示转成wolf*,类型发生了变化,第四行把这个值转成man*,类型也发生了变化,
但为什么这里pwolf和pman的值是一样的呢?它们的类型明明不一样