Тип в dynamic_cast должен быть указателем или ссылкой на полный тип класса или void *

Я надеюсь, что есть кто-то, кто понимает, почему код ниже не работает. Я пытаюсь получить экземпляр PositionAttitudeTransform (класс Openscenegraph) из объекта узла osg :: Node *. Но есть ошибка компилятора ниже, выделенная жирным шрифтом.

 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 *

Пожалуйста, помогите мне с правильным способом доступа к моему объекту, и я был бы признателен за помощь в понимании, в чем заключается проблема, так как я считаю, что приведение должно быть возможным.

иерархия
http://www.openscenegraph.org/documentation/OpenSceneGraphReferenceDocs/a00529.html

5

Решение

Я считаю, что вы должны #include заголовочный файл, который содержит тело class osg::PositionAttitudeTransform,
dynamic_cast выдает такую ​​ошибку, когда тело класса назначения не видно.

Вот похожий ошибка воспроизводится в g ++.

8

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]