在 C 中,臨時物件通常在它們出現的表達式末尾過期,可能導致懸空引用。然而,該語言提供了一個獨特的功能,允許在綁定到 const 引用時延長臨時變數的生命週期。
以下程式碼示範了這個概念:
<code class="cpp">string foo() { return string("123"); } int main() { const string& val = foo(); printf("%s\n", val.c_str()); return 0; }</code>
儘管foo() 傳回一個臨時變數string,對const 引用val 的賦值會延長臨時變數的生命週期,直到引用本身過期。這是符合 C 標準的預期行為,確保 val 始終指向有效物件。
但是,請務必注意,此異常僅適用於基於堆疊的參考。作為物件成員的引用不會延長其綁定臨時物件的生命週期。有關此功能的更多詳細信息,請參閱 Herb Sutter 的“GotW #88:“最重要的 const”的候選人。”
以上是如何使用 Const 引用來延長 C 中臨時物件的生命週期?的詳細內容。更多資訊請關注PHP中文網其他相關文章!