首頁 >後端開發 >C++ >臨時函數參數能存在多久?

臨時函數參數能存在多久?

Susan Sarandon
Susan Sarandon原創
2024-12-27 19:20:10496瀏覽

How Long Do Temporary Function Arguments Live?

臨時函數參數的生命週期

當建立臨時物件作為函數的參數時,標準保證將呼叫其析構函數在包含函數呼叫的完整表達式的末尾。

詳細說明

當函數參數是計算結果為物件的表達式時,將建立臨時物件。在提供的範例中,MyClass(42) 是一個臨時物件。

臨時物件的生命週期一直延伸到它們所屬的完整表達式的末端。完整表達式通常以分號 (`;) 結尾,分號 (`;) 結束包含該表達式的語句。在這種情況下,完整的表達式以對 myFunction() 的函數呼叫的右括號結束。

因此,在 MyClass(42) 中建立的臨時 MyClass 物件的析構函數將在執行繼續之前被呼叫。函數呼叫後的下一語句。

擴展臨時生命週期

雖然臨時物件通常是短暫的,但可以透過將它們綁定到常數引用來延長它們的生命週期。例如:

const MyClass& r = getMyClass();

在這種情況下, getMyClass() 傳回的臨時物件將持續到封閉區塊的末尾,從而將其生命週期延長到完整表達式之外。

以上是臨時函數參數能存在多久?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn