Dans certains textes, il est indiqué que nous ne pouvons pas affecter de valeurs constantes à une variable de référence. Quand j'ai exécuté un tel programme, je pouvais le faire. Y at-il une condition que nous ne pouvons pas attribuer une valeur constante à une variable de référence?variable de référence
Répondre
Vous ne pouvez pas affecter une valeur constante à une référence non constante, de la même manière que vous ne pouvez pas affecter une adresse de valeur constante à un pointeur pointant sur une valeur non constante.
Au moins, pas sans const_cast.
Éditer: Si vous faisiez réellement référence à des valeurs littérales, la réponse de Luc est la meilleure. Je parlais de variables const, pas de littéraux.
Vous pouvez initialiser une référence constante à une valeur constante.
const int &i = 12;
Si la référence n'est pas const, vous obtenez une erreur de compilation.
int &i = 12; //compiler error
Les valeurs constantes (par exemple les littéraux) sont (la plupart du temps) stockées dans des segments en lecture seule de la mémoire. Par conséquent, vous ne pouvez pas les référencer en utilisant des références non-const, car cela signifie que vous pourriez les modifier.
ni l'un ni l'autre sont des affectations - ce sont deux initialisations –
Vous pourriez être un peu confus concernant la différence entre "initialisation" et "affectation". Celles-ci sont différentes en C++ et la compréhension de la différence est cruciale pour comprendre le langage. Ignorant les références:
int x = 1; // initialisation
x = 1; // assignment
Références ne peuvent être initialisés
int & r = x; // initialisation
r = 2; // assigns 2 to x _not_ to r
Il n'y a aucun moyen de re-initialisant une référence.
En ce qui concerne votre question, en ce qui consts sont concernés, vous pouvez référence const avec initialiser une valeur const:
const int & r2 = 42;
- 1. C++/CLI de référence variable
- 2. ASH référence indirecte variable
- 3. Actionscript - Variable Affectation sans référence?
- 4. Variable d'application des formulaires de référence.
- 5. Référence d'un identifiant de composant Lancer une variable
- 6. PHP Comment savoir si une variable est une référence?
- 7. Faut-il passer variable par référence en php5?
- 8. Renvoyer la référence à la variable locale statique en C++
- 9. Passer une variable par référence dans une extension PHP
- 10. Que fait ce code (jamais vu un objet sans une variable de référence? Pourquoi ne pas invoquer l'objet plus tard sans la variable de référence?)?
- 11. asp.net - C# Variable de session en cours de modification par référence?
- 12. C++ Comment obtenir une référence et sauvegarder la référence en tant que variable locale dans une fonction?
- 13. Où est attribué la référence de la variable, dans la pile ou dans le tas?
- 14. Variable de valeur de tableau C++ variable
- 15. linq 'variable variable' problème
- 16. Liste d'arguments de modèle de longueur variable?
- 17. Numéro de référence WebServices
- 18. Types de référence Linq2SQL
- 19. refactoring de référence JPA
- 20. Site Web de référence
- 21. dll référence de app.config?
- 22. paramètres de référence const
- 23. problème de référence htaccess
- 24. Comptage de référence MSI
- 25. Problème de référence d'assemblage.
- 26. Référence de l'assemblage SlimDX
- 27. Utilisation La valeur d'une variable NSString pour manipuler l'objet auquel le nom fait référence
- 28. stockage référence classmethod dans tuple ne fonctionne pas comme dans la variable
- 29. Référence à la variable d'environnement dans les fichiers oracle sql sous Linux et Windows
- 30. comment puis-je créer une référence à une variable dans specman?
Pouvez-vous poster quelques exemples de code? Je pense que les lecteurs peuvent avoir de la difficulté à comprendre votre description sans code à consulter. –