Namespaces
来自cppreference.com
该页由英文版wiki使用Google Translate机器翻译而来。
该翻译可能存在错误或用词不当。鼠标停留在文本上可以看到原版本。你可以帮助我们修正错误或改进翻译。参见说明请点击这里. |
命名空间提供了一种方法,以防止在大型工程项目的名称冲突.
原文:
Namespaces provide a method for preventing name conflicts in large projects.
的命名空间块内声明的符号被放置在指定的范围内,防止他们被误认为是相同名称的符号,在其它范围内.
原文:
Symbols declared inside a namespace block are placed in a named scope that prevents them from being mistaken for identically-named symbols in other scopes.
允许多个具有相同名称的命名空间声明,导致在一个命名空间包括所有这些声明中所有的符号.
原文:
Multiple declarations of namespaces with the same name are allowed, resulting in a namespace including all symbols from all such declarations.
目录 |
[编辑] 语法
namespace ns_name { declarations }
|
(1) | ||||||||
inline namespace ns_name { declarations }
|
(2) | (C++11 起) | |||||||
ns_name:: name
|
(3) | ||||||||
using namespace ns_name;
|
(4) | ||||||||
using ns_name:: name;
|
(5) | ||||||||
[编辑] 解释
本章尚未完成 |
#声明的命名空间name.
#声明的命名空间name。定义将同时显示的内name,包含它的命名空间
原文:
# Declaration of the namespace name. Definitions will appear both inside name and its enclosing namespace
#标准方式访问命名空间中的内容.
原文:
# Standard way of accessing namespace content.
#所有符号访问的命名空间的using指令的范围.....
原文:
# Making all symbols of a namespace accessible in the scope of the using directive.
#一个特定的符号访问的命名空间的using指令的范围.....
原文:
# Making a specific symbols of a namespace accessible in the scope of the using directive.
[编辑] 示例
这个例子展示了如何使用一个命名空间创建一个类,它已经被命名为
std
命名空间中的.
原文:
This example shows how to use a namespace to create a class that already has been named in the
std
namespace.
#include <vector> namespace vec { template< typename T > class vector { // ... }; } // of vec int main() { std::vector<int> v1; // Standard vector. vec::vector<int> v2; // User defined vector. v1 = v2; // Error: v1 and v2 are different object's type. { using namespace std; vector<int> v3; // Same as std::vector v1 = v3; // OK } { using vec::vector; vector<int> v4; // Same as vec::vector v2 = v4; // OK } return 0; }
[编辑] 另请参阅
命名空间别名 | 现有的命名空间创建一个别名
原文: creates an alias of an existing namespace |