我讀here on SO如何:不返回值,從函數具有非void返回類型
在C++:
- 不從非void函數返回是未定義的行爲。
... analysis requires inspection of the entire program, which is incompatible with separate compilation, and which is not even possible in the general case ...
從我做了該網頁上的幾個答案,那是困難的,不可能逸岸有時,檢查return語句的功能的存在。這不是從非void函數返回的,而是由C++標準留下的未定義行爲。
但是,我聽說在Java中,同樣的事情在編譯時報告爲錯誤。
問:我的理解是否正確?而且Java如何實現相同?
編輯:只是要清楚,我感興趣的理解:
如果它是在與編譯器執行難C++標準沒有定義,怎麼就是Java能夠實現相同。
如果這樣做不難,那麼C++標準不應該將其定義爲錯誤嗎?如果存在從非void函數不
return
代碼路徑
這不是很難分析這個刪除if。如果你不從非void函數返回,一個好的C++編譯器會很容易給你一個警告。 – 2013-05-08 13:16:57