Namespaces (C++)
来源:互联网 发布:淘宝店铺优惠券怎么用 编辑:程序博客网 时间:2024/05/17 03:35
The C++ language provides a single global namespace. This can cause problems with global name clashes. For instance, consider these two C++ header files:
char func(char);class String { ... };// somelib.hclass String { ... };
With these definitions, it is impossible to use both header files in a single program; the String classes will clash.
A namespace is a declarative region that attaches an additional identifier to any names declared inside it. The additional identifier makes it less likely that a name will conflict with names declared elsewhere in the program. It is possible to use the same name in separate namespaces without conflict even if the names appear in the same translation unit. As long as they appear in separate namespaces, each name will be unique because of the addition of the namespace identifier. For example:
namespace one { char func(char); class String { ... };}// somelib.hnamespace SomeLib { class String { ... };}
Now the class names will not clash because they become one::String and SomeLib::String, respectively.
C++ does not allow compound names for namespaces.
// pluslang_namespace.cpp// compile with: /c// OKnamespace a { namespace b { int i; }}// not allowednamespace c::d { // C2653 int i;}
Declarations in the file scope of a translation unit, outside all namespaces, are still members of the global namespace.
- Namespaces (C++)
- Namespaces (C++)
- Namespaces
- Namespaces
- Using Namespaces
- 16. Namespaces
- Using Namespaces
- XML Namespaces
- C++ Namespaces
- 18.2-Namespaces
- Linux Namespaces
- namespaces - overview of Linux namespaces
- C#note 02: Namespaces, Classes, Structs, Constants, Operator overloading, if and switch
- C#: Problem trying to resolve a class when two namespaces are similar
- Item 23. Namespaces
- .NET Framework Namespaces
- 8.12 Namespaces and assemblies
- Namespaces in XML
- ireport 导入javabean数据源生成报表!
- 获取各种浏览器的size
- 虚拟主机 日常操作 SSH命令大全
- 启用 JBoss 和 Tomcat 对 JSP 的泛型(JDK5.0特性)支持
- 常用SQL时间函数
- Namespaces (C++)
- javascript 中call与apply区别
- Apache负载均衡+Tomcat集群
- 数据库
- VS2010开发体验系列之一 - 新特性概述
- magento 开发 -- 新增一个简单的退货流程
- 英语学习
- red hat SSH without password
- subclipx v1.02 - 简单实用的轻量级多维剪贴板工具