だから私はこのコードを持っています:
Node* SceneGraph::getFirstNodeWithGroupID(const int groupID)
{
return static_cast<Node*>(mTree->getNode(groupID));
}
mTree->getNode(groupID) は PCSNode* を返します。Node は PCSNode からパブリックに派生しています。
static_cast で見つけたすべてのドキュメントは、この効果について次のように述べています。「static_cast 演算子は、基本クラスへのポインターを派生クラスへのポインターに変換するなどの操作に使用できます。」
しかし、XCode の (GCC) コンパイラーは、 static_cast が PCSNode* から Node* へのものであることは無効であり、許可されていないと言っています。
これは何か理由がありますか?C スタイルのキャストに切り替えると、コンパイラからの苦情はありません。
ありがとう。
更新:質問には回答がありましたが、他の誰かが同じ問題を抱えている場合に備えて、完全を期すためにコンパイラ エラーを投稿します。
エラー: セマンティックの問題: 'PCSNode *' から 'Node *' への Static_cast は許可されていません