1.库倾向于定义许多全局名字——主要是模板名、类型名或函数名。在使用来这些名字中有一些几乎不可避免地会发自多个供应商的库编写应用程序的时候,生冲突,这种名字冲突问题称为命名空间污染问题。
2.命名空间为防止名字冲突提供了更加可控的机制,个命名空间是一个作用域,通过在命名空间内部定义库中的名字,库的作者(以及用户)可以避免全局名字固有的限制。
3.命名空间定义以关键字 namespace 开始,后接命名空间的名字。命名空间可以在全局作用域或其他作用域内部定义,但不能在函数或类内部定义。
4.命名空间作用域不能以分号结束。
......
阅读全文