此代码是否调用不存在的构造函数?

时间:2012-08-28 15:29:16

标签: c++

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

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

这条线到底在做什么?

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

正在访问COMPOSITE::m_Children[index],无论是什么。希望是指向某事物的一系列指针。

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

如果包含此函数的函数按值返回,那将涉及MockBehavior的复制构造函数。

相关问题