71 votes

Qu'est-ce qu'une référence constante ? (pas une référence à une constante)

Une question assez théorique... Pourquoi les références constantes ne se comportent pas de la même manière que les pointeurs constants et je peux réellement changer l'objet vers lequel elles pointent ? Ils ressemblent vraiment à une autre déclaration de variable simple. Pourquoi les utiliserais-je jamais ? Ceci est un court exemple que j'exécute qui compile et s'exécute sans erreur :

 int main (){
    int i=0;
    int y=1;    
    int&const icr=i;
    icr=y;          // Can change the object it is pointing to so it's not like a const pointer...
    icr=99;         // Can assign another value but the value is not assigned to y...
    int x=9;
    icr=x;
    cout<<"icr: "<<icr<<", y:"<<y<<endl; 
}

4voto

Poodlehat Points 300

Par "référence constante", je suppose que vous voulez vraiment dire "référence à des données constantes". Les pointeurs, en revanche, peuvent être un pointeur constant (le pointeur lui-même est constant, pas les données vers lesquelles il pointe), un pointeur vers des données constantes, ou les deux.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X