fonction c++: pass non const argument const paramètre de référence

supposons que j'ai une fonction qui accepte const référence argument pass,

int func(const int &i)
{
  /*    */
}

int main()
{
  int j = 1;
  func(j); //pass non const argument to const reference
  j=2; //reassign j
}

ce code fonctionne très bien.selon C++ primer, que cet argument de passer à cette fonction comme suit,

int j=1;
const int &i = j;

dans laquelle i est un synonyme(alias) de j,

ma question est: si i est un synonyme de j, et i est défini comme const, c'est le code:

const int &i = j

redelcare non const variable variable const? pourquoi cette expression est légal en c++?

InformationsquelleAutor fuyi | 2012-02-03