Страницы

Поиск по вопросам

суббота, 8 июня 2019 г.

Почему исключение можно принимать по ссылке

Почему объект передаваемый в исключении может приниматься по ссылке, хотя он должен только копироваться, то есть при раскрутке стека он копируется из одной области видимости в другую


Ответ

При выбрасывании исключения оно копируется в специальную область памяти для хранения исключений (или, по возможности, сразу создается в этой области). Поэтому перехватывая исключение по ссылке вы получаете ссылку на этот объект, а не на некоторый объект, который раньше был на стеке. При этом перехватывание исключения по ссылки является предпочтительным в плане производительности по сравнению с перехватыванием по значению, так как в этом случае не происходит копирования.

Комментариев нет:

Отправить комментарий