Я пытаюсь изучить и понять манипулирование именами на С++. Вот несколько вопросов:
(1) Из devx
Когда глобальная функция перегружена, сгенерированное искаженное имя для каждой перегруженной версии уникально. К переменным относится также изменение имени. Таким образом, локальная переменная и глобальная переменная с тем же именем, заданным пользователем, по-прежнему получают различные искаженные имена.
Существуют ли другие примеры, использующие управление именами, помимо перегрузок функций и глобальных имен и переменных с одним и тем же именем?
(2) Из Wiki
Потребность возникает там, где язык позволяет именовать разные объекты с одним и тем же идентификатором до тех пор, пока они занимают другое пространство имен (где пространство имен обычно определяется директивой модуля, класса или явного пространства имен).
Я не совсем понимаю, почему манипуляция имени применяется только к случаям, когда идентификаторы принадлежат различным пространствам имен, поскольку функции перегрузки могут находиться в одном пространстве имен, а одноименные глобальные и локальные переменные могут также находиться в одном и том же пространстве, Как это понимать?
Имеются ли переменные с одинаковым именем, но в разных областях, также с помощью mangling?
(3) Имеет ли C название mangling? Если это не так, как это может быть связано с тем случаем, когда одни глобальные и локальные переменные имеют одинаковое имя? C не имеет функций перегрузки, правильно?
Спасибо и приветствую!