首頁 > 後端開發 > C++ > C 中的暫存函數參數何時被銷毀?

C 中的暫存函數參數何時被銷毀?

Linda Hamilton
發布: 2024-12-16 09:42:12
原創
471 人瀏覽過

When Are Temporary Function Arguments Destroyed in C  ?

臨時函數參數:銷毀時機

當建立臨時物件作為函數參數時,管理它們的生命週期對於程式的正確性至關重要。 C 規定了這些臨時物件的生命週期。

在提供的範例中:

class MyClass { MyClass(int a); };
myFunction(MyClass(42));
登入後複製

C 保證在 完整表達式的末尾調用臨時 MyClass 物件的析構函數 該物件是其一部分。完整的表達式通常以分號結束;或其他語句終止符。在這種情況下,完整表達式以函數呼叫 myFunction() 的右括號結束。

因此,您可以假設在執行函數呼叫後的下一條語句之前將呼叫臨時物件的析構函數.

請注意,透過將臨時變數綁定到const 引用,可以將它們的生命週期延長到完整表達式之外。這會將它們的生命週期延長到引用的生命週期,如下例所示:

MyClass getMyClass();

{
  const MyClass& r = getMyClass(); // full expression ends here
  ...
} // object returned by getMyClass() is destroyed here
登入後複製

以上是C 中的暫存函數參數何時被銷毀?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板