命名空间

命名空间

  定义:用花括号将全局作用域划分为不同的块,不同的块就是命名空间,不同命名空间内部的标识符可以同名。

  特点:1. 命名空间可以相互嵌套。

     2. 全局作用域叫默认命名空间。

              //默认命名空间(全局变量空间)


namespace Name        // 全局作用域中此空间作为名字为Name的空间
{
  namespace Internel   // 名字为Internel的空间
    {
      /*   */
    }  
   /*  */
}    

            //所有命名空间中的变量本质还是全局变量

    

使用命名空间的函数与变量:

      1. 使用名字为Name的命名空间的函数与变量 --->  using namspace Name;                     // 声明接下来要使用

      2. 使用名字为Name的命名空间的变量与函数 --->  using Name::var;           // 使用的是哪个变量

      3. 使用默认命名空间的变量与函数                  --->  ::var;                                                   // 使用的是哪个变量

 

#include <stdio.h>

namespace First
{
    int i = 0;              

} namespace Second { int i = 1; namespace Internal { struct P { int x;
       int y;
     }; } }
int main() { using namespace First; // 将要在main()函数中使用First命名空间的一切函数与变量 using Second::Internal::P; // 将要在main()函数中使用second命名空间中的internel命名空间中的P变量 printf("First::i = %d\n", i); // 0 printf("Second::i = %d\n", Second::i); // 1 P p = {2, 3}; printf("p.x = %d\n", p.x); // 2 printf("p.y = %d\n", p.y); // 3 return 0; }

 

posted @ 2019-04-10 20:51  张不源  Views(137)  Comments(0Edit  收藏  举报