[英]Struct existence in functions/methods
說
a_function(mystruct::create().execute());
create()
創建一個struct實例作為mystruct s()
然后execute()
方法返回一些信息。
該結構在函數執行的整個過程中是否繼續存在或被釋放?
它存在直到函數返回。
您可以放心,只要尚未評估創建該臨時對象的完整表達式,便會存在該臨時對象,這意味着您的結構將“存在”,直到返回a_function
為止。
臨時struct
對象一直存在,直到完整表達式結束為止。 這意味着直到a_function
返回了a_function
。
參見C ++ 03中的12.2。
除非有延長生存期的特殊條件,否則在表達式中創建的任何臨時對象都將在完整表達式的末尾銷毀。 這是分號。
您甚至可以放心,多個臨時對象將一如既往地被破壞,其創建順序相反。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.