在C 中,將臨時物件分配給常數引用是一種常見操作,最初可能會引發有關其生命週期的問題
問題:
為什麼下面的程式碼有效且不會導致編譯器錯誤?
<code class="cpp">string foo() { return string("123"); } int main() { const string& val = foo(); printf("%s\n", val.c_str()); return 0; }</code>
答案:
C 明確定義將臨時物件綁定到基於常數堆疊的引用可延長臨時物件的生命週期以符合引用的生命週期。在這種情況下, foo() 傳回的暫存物件一直存在到 main() 函數結束。
說明:
注意:
以上是為什麼在 C 中將臨時物件綁定到常數參考可以延長其生命週期?的詳細內容。更多資訊請關注PHP中文網其他相關文章!