为什么命名空间和类在C++中具有相同的语法?

iia*_*chu -4 c++ syntax namespaces class colon

命名空间和类是C++中的两个不同概念.命名空间仅用于防止名称冲突,而类是用户定义的类型.

他们为什么使用相同::的语法?

例如:

namespace::function();
class::function();
Run Code Online (Sandbox Code Playgroud)

AnT*_*AnT 6

命名空间和类都形成范围.范围是一个相当统一的命名空间和类的概念:C++中的类范围和命名空间范围(以及其他类型的范围).由于它::是一个作用域解析运算符,因此它在语法相似的方式中与名称空间和类一起使用并没有什么不寻常之处.