我處理,我不能直接使用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);'應該做的工作。查看答案以獲取更多詳細信息。編輯評論:哦,我不知道這是不可能的。忘記我的評論。 –