Цитата из учебника "Как программировать на С++" Дейтел Х., Дейтел П.
Функции могут возвращать ссылки, но здесь надо быть осторожным. Если возвращение ссылки переменной объявлено в вызываемой функции, переменная должна быть объявлена внутри этой функции как static. В противном случае ссылка адресуется автоматической переменной, которая после завершения функции уничтожается; в таком случае говорят, что переменная «не определена» и поведение программы непредсказуемо.
Что значит
возвращение ссылки переменной объявлено в вызываемой функции
. Имеется ввиду, что ссылка переменной объявлена в функции, а затем возвращается через return?
Т.е.:
int func()
{
static int x = 3;
&y = x;
return y;
}
Это условие объявления переменной, как static, касается всех функций кроме main? Или в main тоже надо соблюдать это условие?