Pourquoi les références non-const à des objets temporaires sont interdites
C interdit d'attribuer des objets temporaires à des références non-const. Cette restriction vient du fait que les objets temporaires disparaissent après l'instruction dans laquelle ils ont été créés. Autoriser les références non const à des objets temporaires pourrait entraîner un comportement indéfini.
Considérez le code suivant :
String& a = String("test"); // Error
Ce code tente d'attribuer un objet String temporaire à une référence non const. . Cependant, cela n'est pas autorisé car a n'est pas une référence const et les objets temporaires ne peuvent pas être modifiés.
Certaines raisons courantes de cette restriction incluent :
C permet de lire à partir d'objets temporaires mais pas d'y écrire car la lecture le fait ne modifie pas l’état de l’objet. Cependant, écrire sur un objet temporaire peut avoir des conséquences inattendues, car l'objet peut être détruit avant la fin de l'opération d'écriture.
Par conséquent, pour éviter ces problèmes potentiels, C restreint les références non const aux objets temporaires, tout en permettant des références const à des fins de lecture en toute sécurité. Cette restriction permet de garantir l'exactitude du programme et empêche un comportement indéfini qui pourrait résulter de la modification d'objets temporaires.
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!