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 中国語 Web サイトの他の関連記事を参照してください。