Namespaces

来自cppreference.com
< cpp‎ | language

 
 
C++语言
表达式
替代表示
字面量
布尔型 - 整型 - 浮点型
字符型 - 字符串 - nullptr (C++11)
用户定义 (C++11)
Utilities
属性 (C++11)
Types
typedef声明
类型别名声明 (C++11)
Casts
隐式类型转换 - 显示类型转换
static_cast - dynamic_cast
const_cast - reinterpret_cast
内存分配
类特有的函数属性
explicit (C++11)
static
静态成员函数
模板
杂项
 
命名空间提供了一种方法,以防止在大型工程项目的名称冲突.
原文:
Namespaces provide a method for preventing name conflicts in large projects.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
的命名空间块内声明的符号被放置在指定的范围内,防止他们被误认为是相同名称的符号,在其它范围内.
原文:
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.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
允许多个具有相同名称的命名空间声明,导致在一个命名空间包括所有这些声明中所有的符号.
原文:
Multiple declarations of namespaces with the same name are allowed, resulting in a namespace including all symbols from all such declarations.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

目录

[编辑] 语法

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.
原文:
# Declaration of the namespace name.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
#声明的命名空间name。定义将同时显示的内name,包含它的命名空间
原文:
# Declaration of the namespace name. Definitions will appear both inside name and its enclosing namespace
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
#标准方式访问命名空间中的内容.
原文:
# Standard way of accessing namespace content.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
#所有符号访问的命名空间的using指令的范围.....
原文:
# Making all symbols of a namespace accessible in the scope of the using directive.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
#一个特定的符号访问的命名空间的using指令的范围.....
原文:
# Making a specific symbols of a namespace accessible in the scope of the using directive.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

[编辑] 示例

这个例子展示了如何使用一个命名空间创建一个类,它已经被命名为std命名空间中的.
原文:
This example shows how to use a namespace to create a class that already has been named in the std namespace.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

#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
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
[edit]