C++中的关键字namespace

namespace名字空间

namespace 汉语意思就是名字空间,下面这行代码中是我们最常见出现过namespace的地方,可是,它这个关键字使用来干什么的呢?下面请听我细细道来:

using namespace std;

using和namespace是C++63个关键字中的两个,using是声明,引入命名空间或基类作用域内已经被声明的名称。而namespace就是一个名字空间,显然,这行代码的意思就是:引入一个名为std的名字空间。C++标准程序库中的所有标识符都被定义于std的namespace中。

namespace N0
{
    namespace N1
    {
    	int add(int a, int b)
    	{
    	    cout<<"N1"<<endl;
    		return a + b;
    	}
    }
        namespace N2
    {
    	int add(int a, int b)
    	{
    		cout<<"N2"<<endl;
    		return a + b;
    	}
    }
 }
    int main()
    { 
         cout<<N0:: N1::add(1,3)<<endl;//调用时必须说明名字空间
         cout<<N0:: N2::add(1,3)<<endl;//调用时必须说明名字空间
         return 0;
    }

由此可见,我们也可以自己定义一个名字空间,但要遵循以下规则:

规则1:名字空间可以解决函数重复、全局变量名重复的问题。 包在不同名字空间里的重复函数实际上是两个完全的不同的函数。

规则2:名字空间允许嵌套,嵌套内部和外部没有任何关系。

规则3:名字空间允许重名,重名的名字空间最后会合并为一个。

名字空间划分新的作用域,解决了C语言中只能用文件划分作用域的缺陷。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值