Правила программирования на С и С++. Главы 7-8 Страница 37. Не возвращайте ссылки (или указатели) на локальные переменные
|
Страница 37 из 74 122. Не возвращайте ссылки (или указатели) на локальные переменные.
Эта проблема проявляется и в С, где вы не можете вернуть указатель на локальную переменную. Не возвращайте ссылку на объект, который не существует после этого возврата. Следующий код не работает: some_class ?f() { some_class x; // ... return x; }Действительной проблемой здесь является синтаксис С++. Оператор return может располагаться на отдалении от определения возвращаемой величины. Единственный способ узнать, что на самом деле делает return x, - это взглянуть на заголовок функции и посмотреть, возвращает она ссылку,или нет. |