-1

也许这是一个基本的误解,但以下行让我感到困惑:

return *static_cast<MockBehavior*>(COMPOSITE::m_Children[index]);

这条线到底在做什么?

4

2 回答 2

3

您的标题和问题文本似乎不一致,但该行采用由标记的指针COMPOSITE::m_Children[index](其中 COMPOSITE 应该是某种命名空间或类),将指针类型强制转换为MockBehavior*,然后取消引用,产生一个引用MockBehavior对象。然后这可能是按值返回的(同样,问题缺少重要的所需上下文),导致调用问题中未显示的某些对象类型的复制构造函数。

于 2012-08-28T15:33:02.330 回答
0

它正在访问COMPOSITE::m_Children[index],无论是什么。希望是指向某些东西的指针数组。

然后它尝试将该指针转换为指向MockBehavior. 最后,它取消引用该指针,并返回结果。

如果包含 this 的函数按值返回,那将涉及MockBehavior.

于 2012-08-28T15:34:45.287 回答