#include <iostream>
int getID (int k) {
static int& r = k;
return r++;
}
int main()
{
int a = getID (10);
int b = getID (10);
std::cout << "a = " << a << ", b = " << b << std::endl;
return 0;
}
Я не понимаю, почему этот код компилируется.Статическая ссылка со ссылкой на временную переменную
- Как можно использовать статическую ссылку для ссылки на локальную переменную k, которая исчезнет в конце вызова функции).
- Во втором вызове мы повторно инициализируем статическую ссылку с новой переменной . Пожалуйста, объясните, что здесь происходит, почему статические REFERENCE могут быть «переопределены» (я думаю, что я не понимаю значение ссылки на статическую переменную внутри метода).