命名空间的概念

作者:王 军

很多初学C++的人,对于C++中的一些基本的但又不常用的概念感到模糊,命名空间(namespace)就是这样一个概念。

C++中采用的是单一的全局变量命名空间。在这单一的空间中,如果有两个变量或函数的名字完全相同,就会出现冲突。当然,你也可以使用不同的名字,但有时我们并不知道另一个变量也使用完全相同的名字;有时为了程序的方便,必需使用同一名字。比如你定义了一个变量string user_name, 有可能在你调用的某个库文件或另外的程序代码中也定义了相同名字的变量,这就会出现冲突。命名空间就是为解决C++中的变量、函数的命名冲突而服务的。解决的办法就是将你的strTemp变量定义在一个不同名字的命名空间中。就好像张家有电视机,李家也有同样型号的电视机,但我们能区分清楚,就是因为他们分属不同的家庭。

例如:

#include #include using namespace std;

//using namespace编译指示,使在C++标准类库中定义的名字在本程序中可以使用

//否则,iostream,string 等c++标准类就不可见了,编译就会出错。

//两个在不同命名空间中定义的名字相同的变量

namespace myown1{ string user_name = "myown1"; }namespace myown2{ string user_name = "myown2"; }int main(){ cout

作者:王 军

很多初学C++的人,对于C++中的一些基本的但又不常用的概念感到模糊,命名空间(namespace)就是这样一个概念。

C++中采用的是单一的全局变量命名空间。在这单一的空间中,如果有两个变量或函数的名字完全相同,就会出现冲突。当然,你也可以使用不同的名字,但有时我们并不知道另一个变量也使用完全相同的名字;有时为了程序的方便,必需使用同一名字。比如你定义了一个变量string user_name, 有可能在你调用的某个库文件或另外的程序代码中也定义了相同名字的变量,这就会出现冲突。命名空间就是为解决C++中的变量、函数的命名冲突而服务的。解决的办法就是将你的strTemp变量定义在一个不同名字的命名空间中。就好像张家有电视机,李家也有同样型号的电视机,但我们能区分清楚,就是因为他们分属不同的家庭。

例如:

#include #include using namespace std;

//using namespace编译指示,使在C++标准类库中定义的名字在本程序中可以使用

//否则,iostream,string 等c++标准类就不可见了,编译就会出错。

//两个在不同命名空间中定义的名字相同的变量

namespace myown1{ string user_name = "myown1"; }namespace myown2{ string user_name = "myown2"; }int main(){ cout


相关文章

  • 中国XBRL分类标准架构规范
  • 附件 1: 中国 XBRL 分类标准架构规范 第一章 总则 第一条 为了指导和规范国家 XBRL(可扩展商业报告语言, eXtensible Business Reporting Language)分类标准的制定和扩展 应用,根据<中 ...查看


  • 词义类型学研究_张莉
  • 2013年7月 第33卷第3期 语言研究Jul., 2013Vol. 33No. 3Studies in Language and Linguistics 词义类型学研究 张莉 (华中科技大学外国语学院,武汉430074) 摘要:近年来词义 ...查看


  • STL实践指南 作者 Jeff Bogan
  • 原作者姓名 Jeff Bogan 介绍 这是一篇指导您如何在Microsoft Visual Studio下学习STL并进行实践的文章.这篇文章从STL的基础知识讲起,循序渐进,逐步深入,涉及到了STL编写代码的方法.STL代码的编译和调试 ...查看


  • 弦支结构体系概念与分类
  • 编者按:张拉整体是先进高效的结构概念之一,虽然真正的大跨度张拉整体结构还没有实现,但张拉整体思想派生出了索穹顶.弦支穹顶和各种新型复合预应力结构形式.从20世纪末期美国的索穹顶结构领跑全球开始,中间经历了日本的BSS结构和Suspendom ...查看


  • 生态功能区划及其在生态安徽建设中的作用
  • 安徽农业大学学报,2005,32(1):113-116 JournalofAnhuiAgrieuhuralUniversity 生态功能区划及其在生态安徽建设中的作用 贾良清1一,欧阳志云1,张之源3 (1.中国科学院生态环境研究中心系统生 ...查看


  • 央视各频道广告策略
  • 央视广告代理世纪盘古公司提案的要点 • 传播与媒体媒体是传播的一环, 传播是营销的延伸, 在营销传播领域中, 源于企业扩张 与品牌成长的商业企图 • 提案是销售一个概念.一个点子.一个创意或一个计划的过程. • 提案是一种合理的.有效的说服 ...查看


  • 为什么在中国和西方的远古智慧中,不约而同地出现了"一"和"多"的概念?
  • 在中国和西方的远古智慧中,不约而同地出现了"一"的概念,这是耐人寻味的.<易传>中的太极,就是天地未分前混而为"一"的元气.还有所谓天人合"一".至于古希腊哲学的源头, ...查看


  • 勒贝格生平简介
  • 勒贝格生平简介 1875年6月28日生于法国的博韦:1941年7月26日卒于巴黎. 勒贝格的父亲是一名印刷厂职工,酷爱读书,很有教养.在父亲的影响下,勒贝格从小勤奋好学,成绩优秀,特别擅长计算.不幸,父亲去世过早,家境衰落.在学校老师的帮助 ...查看


  • 起楼盘案名
  • 每一个房地产开发项目,都有自己的案名,案名应该说是房地产营销策划的第一步.俗话说好的开头等于成功的一半,有媒体报道 "案名学"都已应运而生.在北京这个善于炒作概念并善于提炼概念的房地产市场上,一个能够一炮打响的案名可以收 ...查看


热门内容