Итак, у меня есть этот код:
Node* SceneGraph::getFirstNodeWithGroupID(const int groupID)
{
return static_cast<Node*>(mTree->getNode(groupID));
}
mTree-> getNode (groupID) возвращает PCSNode *. Узел является производным от PCSNode.
Все документы, которые я нашел на static_cast, говорят об этом: «Оператор static_cast может использоваться для таких операций, как преобразование указателя на базовый класс в указатель на производный class. "
Тем не менее, компилятор XCode (GCC) говорит, что static_cast от PCSNode * к Node * недействителен и не разрешен.
Есть ли причина, почему это так? Когда я переключаю его на приведение в стиле C, компилятор не предъявляет претензий.
Спасибо.
ОБНОВЛЕНИЕ: Несмотря на то, что на вопрос был дан ответ, я опубликую ошибку компилятора для полноты на случай, если у кого-то есть та же проблема:
ошибка: семантическая проблема: Static_cast от 'PCSNode *' к 'Node *' не разрешено