也许这是一个基本的误解,但以下行让我感到困惑:
return *static_cast<MockBehavior*>(COMPOSITE::m_Children[index]);
这条线到底在做什么?
也许这是一个基本的误解,但以下行让我感到困惑:
return *static_cast<MockBehavior*>(COMPOSITE::m_Children[index]);
这条线到底在做什么?
您的标题和问题文本似乎不一致,但该行采用由标记的指针COMPOSITE::m_Children[index]
(其中 COMPOSITE 应该是某种命名空间或类),将指针类型强制转换为MockBehavior*
,然后取消引用,产生一个引用MockBehavior
对象。然后这可能是按值返回的(同样,问题缺少重要的所需上下文),导致调用问题中未显示的某些对象类型的复制构造函数。
它正在访问COMPOSITE::m_Children[index]
,无论是什么。希望是指向某些东西的指针数组。
然后它尝试将该指针转换为指向MockBehavior
. 最后,它取消引用该指针,并返回结果。
如果包含 this 的函数按值返回,那将涉及MockBehavior
.