隱式類型轉換我有一個功能:void foo(bool boolParam = true)
C++在Visual Studio 2010
我把它改爲:void foo(const char* charParam, bool boolParam = true)
爲了避免搜索我剛剛編譯的代碼希望編譯器會給出一個錯誤(或至少是一個警告),因爲函數被錯誤的參數類型調用,但是代替這個,編譯器自動將false轉換爲NULL
,並編譯所有內容而不會出現錯誤或警告。這種行爲是否正確?我知道false和NULL
都是0,但我認爲編譯器至少應該給出一些警告信息...
呃,它可能應該給你一些警告,但我想這是因爲'NULL'在'windows.h'中簡單地定義爲'0'。好問題,但。 – 2011-02-25 08:29:05
如果將警告級別設置爲4(在項目設置中),您應該會收到一些警告。 – 2011-02-25 08:31:25
@Volker:你確定/ W4會對此產生警告嗎? – 2011-02-25 08:35:23