C++命名空间

首先,我们来了解一下命名空间。
命名空间实际上就是一个由程序设计者命名的内存区域,程序设计者可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中,从而与其他全局实体分隔开来。
命名空间的作用是建立一些互相分隔的作用域,把一些全局实体分隔开来。

命名空间的形式

  • 匿名命名空间
  • 有名称命名空间
    在C++中,使用namespace关键字定义一个命名空间,使用using namespace来使用命名空间。在一个命名空间里面可以嵌套其它的命名空间。

有名称额命名空间

//自定义命名空间
namespace myspace {
  /**
   *其它的代码
    ·变量(可以带有初始化);
    ·常量;
    ·数(可以是定义或声明);
    ·结构体;
    ·类;
    ·模板;
    ·命名空间(在一个命名空间中又定义一个命名空间,即嵌套的命名空间)。
   */
   //嵌套命名空间
   namespace child{
   /**
   *其它的代码
   */
   }
}
//使用命名空间,使用命名空间语句一定要在命名空间之后
using namespace myspace;
//为命名空间取别名
namespace my=myspace;

/**1 使用myspace命名空间里面变量或者方法可以使用my::变量(方法),使用嵌套的命名空间my::child::变量(方法)
  2 命名空间里面的所有变量和方法都是公有的,不能写成私有。命名空间的作用域开始于using namespace 名称;,到程序代码结束
  3 命名空间如果在一个{}里面声明使用,则作用于就是{}里面
  4 如果命名空间同名了,那么就会相当于拓展命名空间,相同的变量和方法就会覆盖掉,最新的起作用
*/

匿名命名空间

//没有命名的命名空间可以直接调用
namespace
{
    int a(3);
    void print()
    {
        std::cout << "gogogo";
    }
}

void main3()
{

    std::cout << a;
    print();
}

在使用命名空间的时候,注意不要再命名空间里面定义方法,而是使用函数指针接口,这样有利于程序迭代开发。

namespace withFunctuion
{
    int(*madd)(int, int);//函数指针接口
}

int add2(int a, int b)
{

    return a + b;
}
int add1(int a, int b)
{
    std::cout << a << b;
    return a + b;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值