C++ 名字空间

名字空间
C语言中的名字空间的划分:全局、局部、块
C++认为:全局空间用起来非常方便,但如果把太多的东西放在全局空间中会造成命名冲突,所以C++引用了这样一种机制就是名字空间
名字空间:把全局的命名空间进一步的分割,可以创建出一个个独立的命名空间防止相互之间的冲突
1、定义名字空间:
namespace name
{
变量:
函数:
结构、类:

}
2、名字空间的合并
a、同名的命名空间会自动合并
b、在同一个名字空间中标识符必须是唯一的

3、定义与声明分开
namespace n1//在名字空间中声明函数
{
void func(void)
}
//在名字空间外定义函数
void n1::func(void)
{

}

4、如何使用名字空间中的内容
a、域限定符(::),直接使用,名字空间::标识符,这样的好处是绝不会冲突,但就是麻烦了点
b、using namespace 名字空间;功能是把名字空间中的标识符对之后的代码全部公开
c、using 名字空间::标识符,表示此标识符对后面的代码公开

5、名字空间的嵌套
名字空间可以嵌套,但使用时要逐层解析

namespace n1
{
  int num=10;
  namespace n2
    {
i      nt num=20;
      namespace n3
        {
        int num=30;
        }
    }
}
n1::n2::n3::num=30;
n1::n2::num=20;
n1::num=10;
using namespace n1::n2;

6、全局空间归属为匿名空间
在全局空间定义的标识符都属于这个匿名空间,匿名空间默认开放
如果函数中有同名的标识符把匿名空间中的屏蔽了,可以使用空的域限定符

注意:不同命名空间中的同名函数不构成重载,同一作用域下的同名函数叫重载

 
 

名字空间
C语言中的名字空间的划分:全局、局部、块
C++认为:全局空间用起来非常方便,但如果把太多的东西放在全局空间中会造成命名冲突,所以C++引用了这样一种机制就是名字空间
名字空间:把全局的命名空间进一步的分割,可以创建出一个个独立的命名空间防止相互之间的冲突
1、定义名字空间:
namespace name
{
变量:
函数:
结构、类:

}
2、名字空间的合并
a、同名的命名空间会自动合并
b、在同一个名字空间中标识符必须是唯一的

3、定义与声明分开
namespace n1//在名字空间中声明函数
{
void func(void)
}
//在名字空间外定义函数
void n1::func(void)
{

}

4、如何使用名字空间中的内容
a、域限定符(::),直接使用,名字空间::标识符,这样的好处是绝不会冲突,但就是麻烦了点
b、using namespace 名字空间;功能是把名字空间中的标识符对之后的代码全部公开
c、using 名字空间::标识符,表示此标识符对后面的代码公开

5、名字空间的嵌套
名字空间可以嵌套,但使用时要逐层解析

namespace n1
{
  int num=10;
  namespace n2
    {
i      nt num=20;
      namespace n3
        {
        int num=30;
        }
    }
}
n1::n2::n3::num=30;
n1::n2::num=20;
n1::num=10;
using namespace n1::n2;

6、全局空间归属为匿名空间
在全局空间定义的标识符都属于这个匿名空间,匿名空间默认开放
如果函数中有同名的标识符把匿名空间中的屏蔽了,可以使用空的域限定符

注意:不同命名空间中的同名函数不构成重载,同一作用域下的同名函数叫重载

 

名字空间
C语言中的名字空间的划分:全局、局部、块
C++认为:全局空间用起来非常方便,但如果把太多的东西放在全局空间中会造成命名冲突,所以C++引用了这样一种机制就是名字空间
名字空间:把全局的命名空间进一步的分割,可以创建出一个个独立的命名空间防止相互之间的冲突
1、定义名字空间:
namespace name
{
变量:
函数:
结构、类:

}
2、名字空间的合并
a、同名的命名空间会自动合并
b、在同一个名字空间中标识符必须是唯一的

3、定义与声明分开
namespace n1//在名字空间中声明函数
{
void func(void)
}
//在名字空间外定义函数
void n1::func(void)
{

}

4、如何使用名字空间中的内容
a、域限定符(::),直接使用,名字空间::标识符,这样的好处是绝不会冲突,但就是麻烦了点
b、using namespace 名字空间;功能是把名字空间中的标识符对之后的代码全部公开
c、using 名字空间::标识符,表示此标识符对后面的代码公开

5、名字空间的嵌套
名字空间可以嵌套,但使用时要逐层解析

namespace n1
{
  int num=10;
  namespace n2
    {
i      nt num=20;
      namespace n3
        {
        int num=30;
        }
    }
}
n1::n2::n3::num=30;
n1::n2::num=20;
n1::num=10;
using namespace n1::n2;

6、全局空间归属为匿名空间
在全局空间定义的标识符都属于这个匿名空间,匿名空间默认开放
如果函数中有同名的标识符把匿名空间中的屏蔽了,可以使用空的域限定符

注意:不同命名空间中的同名函数不构成重载,同一作用域下的同名函数叫重载

猜你喜欢

转载自www.cnblogs.com/xiwen2017/p/9439264.html
今日推荐