предположим, что у меня есть функция, которая принимает константный эталонный аргумент,
int func(const int &i)
{
/* */
}
int main()
{
int j = 1;
func(j); // pass non const argument to const reference
j=2; // reassign j
}
этот код работает нормально. в соответствии с примерами C ++, что этот аргумент передает этой функции как показано ниже,
int j=1;
const int &i = j;
в котором i является синонимом (псевдонимом) j,
мой вопрос: если i является синонимом j, а i определен как const, это код:
const int & i = j
преобразовать неконстантную переменную в константную? почему это выражение допустимо в C ++?