- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
为什么需要命名空间
3: 为什么需要命名空间 一、 为什么需要命名空间(问题提出) 命名空间是ANSIC++引入的可以由用户命名的作用域,用来处理程序中常见的同名冲突。 在C语言中定义了3个层次的作用域,即文件(编译单元)、函数和复合语句。C++又引入了类作用域,类是出现在文件内的。在不同的作用域中可以定义相同名字的变量,互不于扰,系统能够区别它们。 1、全局变量的作用域是整个程序,在同一作用域中不应有两个或多个同名的实体(enuty),包括变量、函数和类等。 例:如果在文件中定义了两个类,在这两个类中可以有同名的函数。在引用时,为了区别,应该加上类名作为限定: class A //声明A类 { public: void funl();//声明A类中的funl函数 private: int i; }; void A::funl() //定义A类中的funl函数 {…………} class B //声明B类 { public: void funl(); //B类中也有funl函数 void fun2(); }; void B::funl() //定义B类中的funl函数 { …………} 这样不会发生混淆。 在文件中可以定义全局变量(global variable),它的作用域是整个程序。如果在文件A中定义了一个变量a int a=3; 在文件B中可以再定义一个变量a int a=5; 在分别对文件A和文件B进行编译时不会有问题。但是,如果一个程序包括文件A和文件B,那么在进行连接时,会报告出错,因为在同一个程序中有两个同名的变量,认为是对变量的重复定义。 可以通过extern声明同一程序中的两个文件中的同名变量是同一个变量。如果在文件B中有以下声明: extem int a; 表示文件B中的变量a是在其他文件中已定义的变量。由于有此声明,在程序编译和连接后,文件A的变量a的作用域扩展到了文件B。如果在文件B中不再对a赋值,则在文件B中用以下语句输出的是文件A中变量a的值: couta; //得到a的值为3 2、程序中就会出现名字冲突。 在简单的程序设计中,只要人们小心注意,可以争取不 发生错误。但是,一个大型的应用软件,往往不是由一个人独立完成的,而是由若干人合作完成的,不同的人分别完成不同的部分,最后组合成一个完整的程序。假 如不同的人分别定义了类,放在不同的头文件中,在主文件(包含主函数的文件)需要用这些类时,就用#include命令行将这些头文件包含进来。由于各头 文件是由不同的人设计的,有可能在不同的头文件中用了相同的名字来命名所定义的类或函数。 例4 名字冲突 程序员甲在头文件headerl.h中定义了类Student和函数fun。 //例4中的头文件header1(头文件1,没其文件名为cc8-4-h1.h) #include string #include cmath using namespace std; class Student //声明Student类 { public: Student(int n,string nam,int a) { num=n;name=nam;age=a;} void get_data(); private: int num; string name; int age; }; void Student::get_data() //成员函数定义 { coutnum name ageendl; } double fun(double a,double b)//定义全局函数(即外部函数) { return sqrt(a+b);} 在main函数所在的文件中包含头文件headerl.h: #include iostream using namespace std; #include header1.h //注意要用双引号,因为文件一般是放在用用户目录中的 int main() { Student stud1(101,Wang,18); //定义类对象studl stud1.get_data(); coutfun(5,3)endl; return 0; } 程序能正常运行,输出为 101 Wang 18 2.82843 如果程序员乙写了头文件header2.h,在其中除了定义其他类以外,还定义了类Student和函数fun,但其内容与头文件headerl.h中的Student和函数fun有所不同。 //例4中的头文件header2 #include s
您可能关注的文档
- 五年级数学上册第一单元教案准备打印12附件.doc
- 人教新版数学六年级上册第五单元圆的教案打印2003.doc
- 苏教版高中化学选修5课堂十分钟练习打印稿及答案(14课时).doc
- 第2章 构建网站Web服务器.ppt
- 2013驾考模拟题五(6页打印版).doc
- 网络基础VPN2003.ppt
- 广西企业远程访问接入解决方案.doc
- Windows Server 2003 DNS服务应用.ppt
- 使用 QEMU 进行系统仿真.doc
- 2014新版小学英语五年级上册单词英汉对照打印版.doc
- 浙江省温州市浙南名校联盟2025-2026学年高一上学期期中联考数学试题含解析.docx
- 26高考数学提分秘诀重难点34圆锥曲线中的定点、定值、定直线问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点35概率与统计的综合问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点31圆锥曲线中的切线与切点弦问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点30圆锥曲线中的弦长问题与长度和、差、商、积问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点29巧解圆锥曲线的离心率问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点28直线与圆的综合(举一反三专项训练)(全国通用)(含解析).docx
- 寡核苷酸药物重复给药毒性研究技术指南.docx
- 重组溶瘤腺病毒生产质量管理标准.docx
- 26高考数学提分秘诀重难点27直线与圆中常考的最值与范围问题(举一反三专项训练)(全国通用)(含解析).docx
最近下载
- 连续式柳编跌水侵蚀沟治理技术规范.doc VIP
- 地质紫金砚工艺品的开发与利用.pdf VIP
- 2020年珠海市中西医结合医院抗菌药物合理使用考核试卷.docx VIP
- (必威体育精装版)25年秋人教版三年级数学上册4 多位数乘一位数笔算乘法练习十.pptx
- 紫金砚的影像传承研究.pptx VIP
- 2021年9月消化内科护士考试题.docx VIP
- 推荐性国家标准项目建议书(通用模板).docx VIP
- 《Animate动画设计与制作实例教程(AnimateCC2019)》完整全套教学课件.pdf
- 消化内科新护士独立上岗前考试题.docx VIP
- 幼儿卫生保健期中考试卷 (1).doc VIP
有哪些信誉好的足球投注网站
文档评论(0)