C++中的命名空间
来源:互联网 发布:淘宝店招牌尺寸 编辑:程序博客网 时间:2024/05/21 11:26
C++中的命名空间
在C++中,变量、函数和类都是大量存在的,这些变量、函数和类的名称将都存在于全局命名空间中,会导致很多冲突, 使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,Namespace关键字的出现就是针对这种问题的。
1、命名空间定义
namespace Namespace{// 内容}
相同命名空间可以分割在不同的文件中,编译器最后都会合成在一个命名空间下。
namespace Namespace{ int iTest3; int iTest4;}
命名空间可以嵌套
namespace Namespace1{ int iTest0; int iTest1; namespace Namespace2 { int iTest1; int iTest3; int iTest4; }}
没有名称的命名空间
namespace{}
【说明】
本质上讲,一个命名空间就定义了一个范围,在命名空间中定义的任何东西都局限于该命名空间中。没有名称的命名空间可以创建只在声明它的文件中才可见的标识符。也就是说,只有在声明这个命名空间的文件中,它的成员才是可见的,它的成员才可以被直接访问,不需要命名空间名称来修饰。对于其他文件,该命名空间是不可见的。把全局名称的作用域限制在声明他的文件中的一种方式就是把它的声明为静态的,尽管C++支持全局静态,但最好的方式还是使用未命名的空间。
2、使用方式
【命名空间内直接使用】
namespace NamespaceTest{ int iTest0; int iTest1; int iTest2; void TestNamespace() { iTest0 = 10; iTest1 = 20; }}
【命名空间名称限制】
void TestNamespace(){ Namespace::iTest0 = 10; Namespace::iTest1 = 20;}
【导入命名空间】
using namespace Namespace; void TestNamespace() { iTest0 = 10; iTest1 = 20; }
【使用谁引入谁】
using Namespace::iTest0;using Namespace::iTest1;void TestNamespace(){ iTest0 = 10; iTest1 = 20;}
访问命名空间里的变量和函数有两种方式:
定义命名空间:
namespace NamespaceTest{ int iTest0; int iTest1; int iTest2; void TestNamespace() { iTest0 = 10; iTest1 = 20; }}
第一种:
使用 using namespace 空间名
例如:
using namespace NamespaceTest;int main(){ iTest0 = 10; iTest1 = 20; cout <<"a = " <<iTest0 << endl; cout <<"b = " <<iTest1 << endl; return 0;}
第二种:空间名::变量(函数)
例如:
int main(){ NamespaceTest::iTest0 = 10; NamespaceTest::iTest1 = 20; cout << "a = " << NamespaceTest::iTest0 << endl; cout << "b = " << NamespaceTest::iTest1 << endl; return 0;}
阅读全文
1 0
- c语言中的命名空间
- C/C++:命名空间
- C++中的命名空间
- C#中的命名空间
- MXML中的命名空间
- C++中的命名空间
- C++中的命名空间
- Javascript中的命名空间
- C++中的命名空间
- c#中的命名空间
- c#中的命名空间
- C++中的命名空间
- struts2中的命名空间
- PHP中的命名空间
- android中的命名空间
- PHP中的命名空间
- PHP中的命名空间
- C++中的命名空间
- USACO1.3牛式 Prime Cryptarithm
- CS 300 Equidistant Points 构造(圆上等距离点)
- 对ROC和KS曲线的理解
- ZJU1508 Intervals选数
- MFC VS2013 error LNK1104: 无法打开文件“C:\Users\Desktop\显示两个指标\Debug\FaceTempture.exe”
- C++中的命名空间
- Hibernate OID、导航图、HQL、SQL、QBC查询方式示例
- 人生最大的遗憾,莫过于没有程序员男友
- hashmap集合类用法
- UVa11388
- c++覆盖方法
- Git Branch分支的使用
- Deep Learning:正则化(十)
- CMAKE默认编译链接选项