Ce qui est une référence constante? (pas une référence à une constante près)

Une jolie théorique question...Pourquoi références constantes ne se comportent pas de la même manière constante les pointeurs et je peux effectivement changer l'objet qu'ils désignent? Ils semblent vraiment comme une autre plaine de la déclaration de la variable. Pourquoi aurais-je les utiliser? C'est un petit exemple que je dirige, 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; 
}
  • Regardez i avant et après icr=y;.
  • Est-ce que même le compiler?
  • voir parashift.com/c++-faq-lite/const-correct.html#faq-18.7
  • vérifier la valeur de x à la fin . 9 . depuis l'icr qui se réfère à i a été changé à 9.
  • Cela ne compile pas!! int&const icr=i; est faux.
InformationsquelleAutor Bat0u89 | 2011-09-14