何時回傳 const 值是有益的?
Effective C 的第 3 條提倡在某些情況下將值作為 const 傳回。然而,這種做法引發了對其有用性和潛在缺點的質疑。
在提供的具體範例中:
const Object myFunc() { return myObject; }
使用const 會限制傳回值的使用,因為它會阻止您執行未命名const 物件的某些操作,例如算術表達式。
依 const 值回傳的目的主要是為了防止意外的 bool 強制轉換的回傳值。然而,在現代 C 中,建議使用顯式關鍵字來達到此目的。
此外,在可以對回傳物件執行非常量操作的情況下,按 const 值傳回可以防止意外呼叫此類對臨時建立的物件進行操作。例如:
(a + b).expensive();
但是,在 C 11 及更高版本中,強烈建議以非常量形式傳回值以利用右值引用,該引用僅適用於非常量右值。
因此,雖然曾經有透過 const 值回傳的理由,但它在現代 C 中已經基本上過時了。總之,除非有特定的效能考量或為了防止意外的 bool 轉換(現在可以使用明確處理),否則通常不認為透過 const 值傳回值是可取的。
以上是什麼時候在 C 中回傳 const 值實際上是有益的?的詳細內容。更多資訊請關注PHP中文網其他相關文章!