Maison >développement back-end >C++ >Quand les arguments de fonctions temporaires sont-ils détruits en C ?
Arguments de fonction temporaires : timing de destruction
Lors de la création d'objets temporaires en tant qu'arguments de fonction, la gestion de leur durée de vie est cruciale pour l'exactitude du programme. C dicte la durée de vie de ces temporaires.
Dans l'exemple fourni :
class MyClass { MyClass(int a); }; myFunction(MyClass(42));
C garantit que le destructeur de l'objet temporaire MyClass est appelé à la fin de l'expression complète dont l'objet fait partie. Une expression complète se termine généralement par un point-virgule ; ou d'autres terminateurs de déclaration. Dans ce cas, l'expression complète se termine par la parenthèse fermante de l'appel de fonction maFonction().
Par conséquent, vous pouvez supposer que le destructeur de l'objet temporaire sera appelé avant l'exécution de la prochaine instruction suivant l'appel de fonction. .
Notez qu'il est possible d'étendre la durée de vie des temporaires au-delà de l'expression complète en les liant à une référence const. Cela étend leur durée de vie jusqu'à celle de la référence, comme illustré dans l'exemple suivant :
MyClass getMyClass(); { const MyClass& r = getMyClass(); // full expression ends here ... } // object returned by getMyClass() is destroyed here
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!