問題:
何時被物件呼叫?在函數呼叫中建立但不用作參數?具體來說,請考慮以下程式碼:
答案:
臨時StringBuffer 物件的析構函數在 呼叫GetString 之後呼叫返回。
根據C 標準(12.2 臨時物件),臨時物件的生命週期結束於完整表達式的結尾,即(a) 本身不作為操作數出現在另一個完整表達式中(類別物件的構造中除外),且(b) 不是a 的一部分帶括號的表達式。
在範例程式碼中,對 GetString 的呼叫是完整表達式,並且在該表達式中建立臨時 StringBuffer 物件。因此,臨時物件的生命週期在 GetString 呼叫返回後結束。
此生命週期保證確保臨時物件保持有效,直到不再需要為止。它允許表達式模板保存對臨時物件的引用,因為臨時物件將持續到表達式被完全計算為止。
以上是函數呼叫中何時呼叫臨時 C 物件的析構函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!