【发布时间】:2013-05-01 15:06:52
【问题描述】:
当将指针传递给其父对象具有虚函数的对象时,我会在结果对象中奇怪地复制父成员。
子 -> 父 -> 子
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 处的父数据都重复了?
【问题讨论】:
-
抱歉,您的问题很混乱,您能否重新表述并使其更精确?特别是最后一部分,这个列表没有意义……
-
Child childobj = new Child();我假设Child* childobj? “在内存中查看时”如何?调试器? IDE? -
请提交一个完整但最小的示例来说明问题。这不适合我们。
-
您很快就会发现,如果您想得到答案,就必须将您的问题提出来,以便至少可以理解。