簡體   English   中英

函數/方法中存在結構

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM