Пример на C ++ не подходит, потому что 'p' выйдет из области видимости, а функция вернет недопустимый указатель.
Правильно.
Пример в C # подходит, потому что анонимный «новый человек» будет оставаться в области действия до тех пор, пока на него есть какая-либо ссылка.
Это более или менее правильно, но ваша терминология не совсем верна. Область действия в C # - это область текста, в которой можно использовать безусловное имя . Объект здесь не имеет имени. Срок службы - это период времени выполнения, в течение которого место хранения гарантированно будет действительным. Область и срок действия связаны; когда элемент управления оставляет код, связанный с областью действия, время жизни локальных элементов, объявленных в этой области, обычно может заканчиваться. (Существуют ситуации, когда время жизни местных жителей больше или меньше, чем время, когда контроль находится в их сфере действия.)
Также обратите внимание, что это не любая ссылка на объект Person, который поддерживает его. Ссылка должна быть с корнем . Вы можете иметь два объекта Person, которые ссылаются друг на друга, но в противном случае они недоступны; тот факт, что у каждого есть ссылка, не поддерживает их жизнь; одна из ссылок должна быть укоренена.