C++名字空间/C++命名空间
作者:网络转载 发布时间:[ 2014/10/16 14:51:48 ] 推荐标签:C++ 软件开发 NET
0、序言
名字空间是C++提供的一种解决符号名字冲突的方法。
一个命令空间是一个作用域,在不同名字空间中命名相同的符号代表不同的实体。
通常,利用定义名字空间的办法,可以使模块划分更加方便,减少模块间的相互影响。
1、名字空间的成员
定义在名字空间中的实体称为名字空间的成员。
名字空间内的名字可以被该名字空间内的其他成员直接访问,名字空间外的代码必须指定该名字位于哪个名字空间。
一个名字空间可以包含多种类型的标识符,如下面所列:
变量、常量、函数、结构体/联合体/枚举、类、嵌套名字空间
名字空间成员的引用方法如下:
namespace_name::member_name
2、定义名字空间
(1)、一个名字空间可以在两个地方被定义:在全局范围层次或者是在另一个名字空间中被定义(这样形成一个嵌套名字空间),不能在函数和类的内部定义。
(2)、名字空间可以是不连续的,他是由所有分离定义的部分的总体构成的。一个名字空间可以分散多个文件中,不同的文件中名字空间的定义也是累积的。
通常将名字空间的声明放到头文件中,实现放到源文件中。可以将不相关的成员放到不同的头文件中。
(3)、命令空间的作用域不能以分号结尾。
3、嵌套名字空间(Nested Namespce)
3.1、普通嵌套名字空间(ordinary nested namespace)
一个嵌套名字空间是一个嵌套作用域,其作用域嵌套在包含他的名字空间中。
在外部引用嵌套空间中的成员时,使用下面的形式
包含嵌套空间的名字空间的名字::嵌套空间的名字::嵌套空间的成员
下面举例说明嵌套名字空间定义和使用
#include <iostream>
namespace MyOutNames
{
int iVal1 = 100;
int iVal2 = 200;
namespace MyInnerNames //定义嵌套名字空间
{
int iVal3 = 300;
int iVal4 = 400;
}
}
int main(void)
{
std::cout<<MyOutNames::iVal1<<std::endl;
std::cout<<MyOutNames::iVal2<<std::endl;
std::cout<<MyOutNames::MyInnerNames::iVal3<<std::endl; //使用嵌套名字空间成员
std::cout<<MyOutNames::MyInnerNames::iVal4<<std::endl; //使用嵌套名字空间成员
return 0;
}
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11