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