命名空间的定义:
namespace cplusplus_primer
{
class Sales_item { /* ... */};
Sales_item operator+(const Sales_item&, const Sales_item&);
class Query { /* ... */};
class Query_base { /* ... */};
}
命名空间的名字在定义该命名空间的做用域中必须是惟一的。
命名空间能够在全局做用域或其余做用域内部定义,但不能在函数或类内部定义。
命名空间名字后面接着由花括号括住的一块声明和定义,能够在命名空间中放入能够出如今全局做用域的任意声明:类、变量(以及它们的初始化)、函数(以及它们的定义)、模板以及其余命名空间。
命名空间做用域不能以分号结束。
由于不一样命名空间引入不一样做用域,因此不一样命名空间能够具备同名成员。
在命名空间中定义的名字能够被命名空间中的其余成员直接使用,命名空间外部的代码必须指出名字定义在哪一个命名空间中。