dynamic_cast中的类型必须是指向完整类类型的指针或引用,或者为void *

时间:2012-10-30 05:51:11

标签: c++ openscenegraph

我希望有人知道为什么下面的代码失败了。我试图从osg :: Node *节点对象获取PositionAttitudeTransform(Openscenegraph类)的实例。但是下面的编译器错误是粗体。

 void CameraPosCallbackUpdate::operator()(osg::Node* node, osg::NodeVisitor* nv)
{ 
   // other code goes here

    osg::PositionAttitudeTransform* pat = dynamic_cast<osg::PositionAttitudeTransform*> (node);

}

IntelliSense:dynamic_cast中的类型必须是指向完整类类型的指针或引用,或者为void *

请帮助我以正确的方式访问我的对象,我很感激帮助理解这里的问题,因为我相信演员应该是可能的。

Hierarchy http://www.openscenegraph.org/documentation/OpenSceneGraphReferenceDocs/a00529.html

1 个答案:

答案 0 :(得分:9)

我认为您必须#include包含class osg::PositionAttitudeTransform正文的标题文件 当目标类的主体不可见时,dynamic_cast会出现此类错误。

以下是类似的error reproduced in g++