C での一時オブジェクトの破棄
C では、式の評価中にオンデマンドで一時オブジェクトが作成されます。これらのオブジェクトは式のスコープ内にのみ存在し、式が終了すると自動的に破棄されます。
3 つのコード行がある次の例を考えてみましょう。
Foo foo{"three"}; Foo{"one"}; std::cout << "two" << '\n';
コードは "one"、" を出力します。 「2」、「3」の順です。この動作は、一時オブジェクトの破棄を管理する次の規則に基づいて発生します。
式評価の終了時の破棄
一時オブジェクトは、完全な式の評価が完了すると破棄されます。彼らは創造されました。この例では、「one」と「three」の一時オブジェクトは、それらが存在するそれぞれの行の後に破棄されます。
ルールの例外
一時オブジェクトの間通常、破棄はこのルールに従いますが、[class.temporary] p4-p7:
提供された例では、これらの例外はいずれも適用されないため、一時オブジェクトはそれぞれの行の後に破棄され、指定された出力が得られます。
以上がC で一時オブジェクトはいつ破棄されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。