為什麼「cout a function without call it (not f() but f;). Print 1 Always?」
在此程式碼中,程式碼嘗試在不使用括號的情況下「呼叫」名為pr 的函數。然而,這實際上並不是呼叫該函數。相反,它將函數指標傳遞給 cout 函數。當函數指標隱式轉換為 bool 值時,其計算結果為 true。由於 true 相當於 C 中的 1,因此輸出始終為 1。
為了澄清,所提供程式碼中的以下幾行沒有呼叫 pr 函數:
pr;
cout 要真正呼叫pr 函數,您需要使用像pr().
這樣的括號行為來源於函數指標可以隱式轉換為bool 的事實。在 C 11 中,可以重載函數指標的運算子
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3