ホームページ >バックエンド開発 >C++ >C で関数の一時引数が破棄されるのはいつですか?

C で関数の一時引数が破棄されるのはいつですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-16 09:42:12477ブラウズ

When Are Temporary Function Arguments Destroyed in C  ?

関数の一時引数: 破棄のタイミング

一時オブジェクトを関数の引数として作成する場合、その有効期間を管理することはプログラムの正確性にとって非常に重要です。 C は、これらの一時オブジェクトの有効期間を決定します。

この例では、

class MyClass { MyClass(int a); };
myFunction(MyClass(42));

C は、完全な式の最後に一時 MyClass オブジェクトのデストラクターが呼び出されることを保証します。オブジェクトが属する 。完全な式は通常、セミコロンで終わります。またはその他のステートメント終了文字。この場合、完全な式は関数呼び出し myFunction() の閉じ括弧で終了します。

したがって、一時オブジェクトのデストラクターは、関数呼び出しに続く次のステートメントの実行前に呼び出されると想定できます。 .

一時変数の有効期間を完全な式を超えて延長するには、一時変数を const 参照にバインドすることで可能であることに注意してください。これにより、次の例に示すように、参照の存続期間が参照の存続期間まで延長されます。

MyClass getMyClass();

{
  const MyClass& r = getMyClass(); // full expression ends here
  ...
} // object returned by getMyClass() is destroyed here

以上がC で関数の一時引数が破棄されるのはいつですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。