我正在学习和理解C++中的名称重整。以下是一些问题:
(1) 来自 devx
当全局函数被重载时,每个重载版本生成的名称都是唯一的。名称重整也适用于变量。因此,具有相同用户给定名称的局部变量和全局变量仍然具有不同的重整名称。
除了函数重载和相同名称的全局和局部变量之外,还有其他使用名称重整的示例吗?
(2) 来自 Wiki
需要出现在语言允许使用相同标识符命名不同实体的情况下,只要它们占用不同的命名空间(其中命名空间通常由模块、类或显式命名空间指令定义)。
我不太明白为什么名称重整仅适用于标识符属于不同命名空间的情况,因为重载函数可以在同一命名空间中,相同名称的全局和局部变量也可以在同一空间中。如何理解这一点?
具有相同名称但位于不同作用域的变量是否也使用名称重整?
(3) C语言是否具有名称重整?如果没有,它如何处理一些全局和局部变量具有相同名称的情况?C没有函数重载,对吗?
谢谢和问候!