回答
因爲沒有爲NULL參考:)
其實有可能是空引用(或者更確切地說,參考空)沒有這樣的事,但它是不確定的行爲(UB)。由於標準不會定義 UB,所以dynamic_cast
拋出非常明確的異常。
Im not following :)請解釋:) – ScarletAmaranth 2011-12-19 18:36:29
對NULL的引用應該是'int const&'類型,但我不認爲這就是你的意思。但是,如果沒有有效的對象來引用它,則無法初始化引用。 – 2011-12-19 18:41:15
@JamesKanze:這就是我的意思。 – Nawaz 2011-12-19 18:42:31
- 1. dynamic_cast失敗
- 2. dynamic_cast如何失敗?
- 3. dynamic_cast在隱藏符號時失敗
- 4. 爲什麼auto_ptr的dynamic_cast失敗?
- 5. dynamic_cast在從Python調用C++ API時失敗
- 6. Swift3:投射UIViewController子類失敗
- 7. Swift動態投射失敗UIPageViewController
- 8. Gif驗證失敗:喜歡:投射陣列失敗,值「1」,路徑爲「likes」
- 9. 日食 - C++「發射失敗」
- 10. 爲什麼我快速動態投射失敗?
- 11. [CastError:在路徑「_id」處投射到ObjectId失敗,值爲「undefined」
- 12. dynamic_cast on llvm clang編譯器失敗
- 13. C++ dll投擲斷言失敗
- 14. 投常量類的dynamic_cast
- 15. 當試圖將JSON轉換爲字典時,Swift動態投射失敗
- 16. 在C++ 11中,失敗的dynamic_cast是否返回NULL或std :: nullptr?
- 17. GeoServer:重新投影時緩存失敗
- 18. 如何投射對象在C#中使用反射運行時?
- 19. 無法投射C#
- 20. 自定義投射系統,以避免緩慢dynamic_cast和qobject_cast
- 21. 有沒有辦法使用dynamic_cast投射到孩子?
- 22. 當dynamic_cast失敗時,這意味着什麼?
- 23. 從C++中的數組動態投射
- 24. 爲什麼受保護的繼承導致dynamic_cast失敗?
- 25. Java投到列表失敗
- 26. 從'JSON'投射到無關類型'String'始終失敗
- 27. 將Linq查詢投射到數據集失敗
- 28. Swift應用程序 - 從AnyObject投射到NSArray似乎失敗
- 29. 使用轉換操作符投射對象失敗
- 30. C#檢查對象是否可以投射到另一個對象失敗?
其實可能有空引用! – Nawaz 2011-12-19 18:34:09
該代碼將被編譯,但會導致未定義的行爲:'int&i = *((int *)0);'。在(非常罕見的)情況下,'dyanmic_cast'導致未定義的行爲是錯誤的,因爲選擇了無效類型作爲轉換的端點,所以它會拋出一個異常,這是一個定義良好的行爲。 :-) – Omnifarious 2011-12-19 18:55:11
是的,我在這裏尋找更多的高層次原因,詹姆斯坎澤幾乎總結了它,你不能初始化沒有對象的引用來引用它。 – ScarletAmaranth 2011-12-19 18:56:56