C 中的臨時物件銷毀
在 C 中,臨時物件是在表達式求值期間按需建立的。這些物件僅存在於表達式的範圍內,並在表達式結束後自動銷毀。
請考慮以下包含三行程式碼的範例:
Foo foo{"three"}; Foo{"one"}; std::cout << "two" << '\n';
程式碼列印「one,」「兩個、」和「三」的順序。此行為是由以下管理臨時物件銷毀的規則引起的:
表達式求值結束時的銷毀
臨時物件在完成完整表達式的求值後來被銷毀,其中他們被創造了。在此範例中,「一」和「三」的臨時物件在它們所在的對應行之後被銷毀。
規則的例外
雖然臨時物件銷毀通常遵循此規則,存在特定的例外情況,如[class.temporary] 所述p4-p7:
在提供的範例中,這些異常都不適用,因此臨時物件在各自的行之後被銷毀,從而產生指定的輸出。
以上是C 中的臨時物件何時被銷毀?的詳細內容。更多資訊請關注PHP中文網其他相關文章!