関数の一時引数の有効期間
関数の引数として一時オブジェクトを作成する場合、標準ではそのデストラクターが呼び出されることが保証されています関数呼び出しを含む完全な式の最後にあります。
詳細説明
関数の引数がオブジェクトとして評価される式である場合、一時オブジェクトが作成されます。提供されている例では、MyClass(42) は一時オブジェクトです。
一時オブジェクトの有効期間は、それらが含まれる完全な式の終了まで延長されます。完全な式は通常、式を含むステートメントを終了するセミコロン (`;) で終わります。この場合、完全な式は、myFunction() への関数呼び出しの閉じ括弧で終わります。
したがって、実行が次の処理に進む前に、MyClass(42) で作成された一時 MyClass オブジェクトのデストラクターが呼び出されます。関数呼び出しの後の次のステートメント。
一時的な拡張ライフタイム
一時オブジェクトは一般に寿命が短いですが、それらを定数参照にバインドすることで寿命を延ばすことができます。例:
const MyClass& r = getMyClass();
この場合、getMyClass() によって返された一時オブジェクトは、それを囲んでいるブロックの終わりまで存続し、その有効期間が完全な式を超えて延長されます。
以上が一時関数の引数はどのくらいの期間存続しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。