C++入门十六-----命名空间

命名空间Namespace:(也可以成为名称空间,名字空间)

当开发大型软件时由多名程序员共同开发,会使用大量的变量和函数,不可避免的会出现变量或者命名冲突,为了解决合作开发时的命名冲突问题

例子:小红和小明都参与了一个文件管理系统的开发,它们都定义了一个全局变量fp,用来指明当前打开的文件,将它们的代码整合在一起编译时,很明显编译器会提示fp重复定义错误,这时候就需要命名空间了

namespace Ming{   //小明的变量定义
    FILE fp=NULL;
}

namespace Hong{  //小红的变量定义
    FILE fp=NULL;
}

小明和小红各自定义了以自己姓氏为名的命名空间,此时就不会出现问题

namespace name{
    //variables,functions,classes
}

name是命名空间的名字,她里面可以包含变量,函数,雷,等,最后由{} 包围

使用变量、函数时要指明它们所在的命名空间,例:

using Ming::fp;
fp=fopen("one.txt,"r"); //使用小明定义的变量fp
Hong::fp=fopen("two.txt,"rb+");//使用小红定义的变量fp

在代码的开头用using声明Ming::fp,它的意思是,using声明以后的程序中如果出现了未指明命名空间的fp,就使用Ming::fp;但是若要使用小红定义的fp,仍需要Hong::fp

using 声明不仅可以针对命名空间中的一个变量,也可以用于声明整个命名空间,例如:

using namespace Ming;
fp=fopen("one.txt,"r"); //使用小明定义的变量fp
Hong::fp=fopen("two.txt,"rb+");//使用小红定义的变量fp

如果命名空间Ming中还定义了其他的变量,那么同样具有fp变量的效果,在using声明后,如果有未具体指定命名空间的变量产生了命名冲突,那么默认采用命名空间Ming中的变量。

命名空间内部不仅可以声明或定义变量,对于其他能在命名空间以外声明或定义的名称,同样也都能在命名空间内部进行声明或定义。

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值