我处理,我不能直接使用dynamic_cast
因为对象是void*
一个特例。使用它第一static_cast
然后dynamic_cast
(在static_cast
的结果)是不好的做法?这是错的吗?使用的static_cast然后dynamic_cast的
这里就是我谈论的例子:
MyClass* CastVoidPtr(void* pVoidPtr)
{
// casting it to MyClass so we could use dynamic_cast
MyClass* pTemp = static_cast<MyClass*>(pVoidPtr);
// returning the actual result that will make sure that we have a MyClass object or a nullptr
return dynamic_cast<MyClass*>(pTemp);
}
'pTemp'已经是'MyClass *',你期望'dynamic_cast'在这里做什么?你的评论没有意义 - 如果'pVoidPtr'是一个nullptr,那么'pTemp'也是,所以你仍然可以返回它。 – Barry
如果'pVoidPtr'不是'MyClass'类型,'pTemp'不会是非null? –
原创评论:只是为了提高@巴里的评论:'回报的dynamic_cast(pVoidPtr);'应该做的工作。查看答案以获取更多详细信息。编辑评论:哦,我不知道这是不可能的。忘记我的评论。 –