C++命名空间

来源:互联网 发布:淘宝质量问题的定义 编辑:程序博客网 时间:2024/05/16 05:21

1.命名空间的定义

c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h,在C++采用命名空间可以将变量,函数,类很好的组织起来,避免冲突,命名空间实际上定义了一个范围。

namespace user

{

        int  a(10);

}

2.命名空间的使用

   ::域作用符  

    using namespace user;其作用域为该行代码的开始到代码结束。如果在块语句内部其作用域为定义开始到块语句结束。

    例:

    void test()

    {

using namespace user;

     }

     对user命名空间中的a进行赋值的时候要采用user::a=15;进行操作;

    当命名空间的名称长度较长的时候可以用 namespace r=user;进行重命名。

3.命名空间的嵌套

    在命名中间中可以进行命名空间的嵌套,即相同名称的命名空间是可以被多次声明的,例:

     namespace  user

     {

 int a(10);

namespace tianya

        {

          int b(20);

        }

    }

    此时对命名空间tianya的访问采用 user::tianya::b;

    如果此时采用 using namespace user::tianya进行访问则只有tianya是可见的。

4.命名空间的拓展

在一处写的命名空间可以在另一处进行扩展,例如可以对上面的user命名空间增加定义

      namespace user

     {

        char *name("helloworld");

     }

5.命名空间注意事项

    1、在命名空间中一般不直接写函数,当需要函数的时候采用函数指针的形式,这样的好处是易于更改

    例:

    namespace user{

        int (*p)(int,int)=add;

    }

    int add(int a,int b)

     {

 return a+b;

     }

     2、命名空间是透明的,所有的都是公有的,不能有private,类默认是私有的,结构体默认是公有的。

     

0 0