C++命名空间
C++命名空间教程
C++ 中的命名空间实际上就是一个由程序设计者命名的内存区域,程序设计者可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中,从而与其他全局实体分隔开来。
命名空间是 ANSI C++ 引入的可以由用户命名的作用域,用来处理程序中常见的同名冲突。
C++命名空间详解
语法
namespace namespaceName
参数
参数 | 描述 |
---|---|
namespace | 定义命名空间使用的关键字。 |
namespaceName | 命名空间的名称。 |
说明
我们使用了 namespace 定义了一个命名空间 namespaceName。
访问命名空间成员详解
语法
namespaceName::member;
参数
参数 | 描述 |
---|---|
namespaceName | 要访问成员的命名空间的名称。 |
member | 要访问的成员。 |
说明
我们使用 namespaceName 后面加上 ::
的形式,访问命名空间的成员。
案例
C++命名空间定义
定义 C++ 命名空间,区分作用域
#include <iostream>
using namespace std;
int MAX_NUM = 10;
int MAX_NUM = 20;
int main()
{
cout << "嗨客网(www.haicoder.net)\n" << endl;
cout << "MaxNum = " << MAX_NUM << endl;
return 0;
}
程序运行后,控制台输出如下:
我们看到,我们定义了两个 int 类型 的 变量,并且,这两个变量名都是 MAX_NUM,因此,我们编译程序,程序报错,即变量被重新定义了, 现在,我们修改程序如下:
#include <iostream>
using namespace std;
namespace MAX1
{
int MAX_NUM = 10;
}
namespace MAX2
{
int MAX_NUM = 20;
}
int main()
{
cout << "嗨客网(www.haicoder.net)\n" << endl;
cout << "Max1::MaxNum = " << MAX1::MAX_NUM << endl;
cout << "Max2::MaxNum = " << MAX2::MAX_NUM << endl;
return 0;
}
程序运行后,控制台输出如下:
这次,我们定义了两个命令空间,MAX1 和 MAX2,并分别将两个变量放在了不同的命名空间中,这次,我们可以看到,我们的程序可以正常运行了,这是因为我们使用了命名空间区分了两个变量的作用域。
最后,我们在 main 函数 中,使用了 MAX1::
和 MAX2::
的形式来访问了命名空间中的变量。
C++命名空间总结
命名空间是 ANSI C++ 引入的可以由用户命名的作用域,用来处理程序中常见的同名冲突。