вопросы по искажению имен в C ++

Я пытаюсь изучить и понять искажение имени в C ++. Вот несколько вопросов:

(1) изDevX

Когда глобальная функция перегружена, сгенерированное искаженное имя для каждой перегруженной версии является уникальным. Имя искажения также применяется к переменным. Таким образом, локальная переменная и глобальная переменная с тем же именем, заданным пользователем, все еще получают разные искаженные имена.

Существуют ли другие примеры, в которых используется искажение имен, помимо перегрузки функций и глобальных и локальных переменных с одинаковыми именами?

(2) изWiki

Возникает необходимость, когда язык позволяет именовать разные сущности с одинаковым идентификатором, если они занимают другое пространство имен (где пространство имен обычно определяется модулем, классом или явной директивой пространства имен).

Я не совсем понимаю, почему искажение имен применяется только в тех случаях, когда идентификаторы принадлежат разным пространствам имен, поскольку функции перегрузки могут находиться в одном и том же пространстве имен, а глобальные и локальные переменные с одинаковыми именами также могут находиться в одном и том же пространстве. Это как понять?

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

(3) Есть ли у C искажение имени? Если это не так, как он может справиться со случаем, когда некоторые глобальные и локальные переменные имеют одинаковые имена? C не имеет функций перегрузки, верно?

Спасибо и всего наилучшего!

Ответы на вопрос(0)

Ваш ответ на вопрос