Maison > Article > développement back-end > Pourquoi la liaison d'un objet temporaire à une référence constante prolonge-t-elle sa durée de vie en C ?
En C, attribuer un objet temporaire à une référence constante est une opération courante qui peut initialement soulever des questions sur la durée de vie de le temporaire.
Question :
Pourquoi le code suivant est-il valide et n'entraîne pas d'erreur de compilation ?
<code class="cpp">string foo() { return string("123"); } int main() { const string& val = foo(); printf("%s\n", val.c_str()); return 0; }</code>
Réponse :
C définit explicitement que la liaison d'un objet temporaire à une référence constante basée sur une pile prolonge la durée de vie du temporaire pour correspondre à celle de la référence. Dans ce scénario, le temporaire renvoyé par foo() dure jusqu'à la fin de la fonction main().
Explication :
Remarque :
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!