Maison > développement back-end > C++ > Combien de temps un objet temporaire C reste-t-il dans un appel de fonction ?

Combien de temps un objet temporaire C reste-t-il dans un appel de fonction ?

Susan Sarandon
Libérer: 2024-12-12 21:45:14
original
535 Les gens l'ont consulté

How Long Does a C   Temporary Object Live Within a Function Call?

Durée de vie garantie du temporaire en C

Lorsqu'une variable temporaire est créée dans un appel de fonction mais n'est pas utilisée comme paramètre, le langage C offre une garantie pour sa durée de vie. Explorons ce concept en relation avec une classe hypothétique appelée StringBuffer.

Dans l'exemple de classe StringBuffer, un objet StringBuffer temporaire est créé dans l'appel de la méthode Size() et transmis à la fonction GetString(). La question se pose de savoir quand le destructeur de cet objet temporaire sera invoqué.

Selon la norme C, le destructeur de ces objets temporaires est appelé à la fin de l'expression complète. Il s'agit de l'expression la plus externe qui ne fait partie d'aucune autre expression, ce qui dans ce cas se produit après le retour de GetString() et l'évaluation de la valeur. Par conséquent, l'objet StringBuffer temporaire restera valide tout au long de l'exécution de GetString().

Ce comportement est crucial pour les techniques telles que les modèles d'expression, car il permet aux variables de contenir des références à des objets temporaires dans des expressions complexes comme e = a b * c / d, garantissant que ces temporaires restent valables jusqu'à ce que l'expression entière soit évaluée.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal