当将指针传递给其父对象具有虚拟函数的对象时,我会在结果对象中奇怪地复制父成员。
孩子 -> 父母 -> 孩子
someMethod(Parent * obj);
Parent
virtual ~Parent() {}
Child : public Parent()
Child childobj = new Child();
someMethod(childobj);
在通过 soemMethod 后在内存中查看时,显示的结果对象如下所示:
DATA[]
parentvar1
parentvar2
Child[]
->Child[]
->childvar1
->childvar2
->Parent[]
->->Parent[]
->->parentvar1
->->parentvar2
为什么我看到父数据在索引 0 和索引 2 处都重复?