臨時函數參數:銷毀時機
當建立臨時物件作為函數參數時,管理它們的生命週期對於程式的正確性至關重要。 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中文網其他相關文章!