C++语言程序设计2.doc_第1页
C++语言程序设计2.doc_第2页
C++语言程序设计2.doc_第3页
C++语言程序设计2.doc_第4页
C++语言程序设计2.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

02章 名字空间一、名字空间的定义名字空间除了系统定义的名字空间之外,还可以自己定义,定义名字空间用关键字“namespace”,使用名字空间时用符号“:”指定。 1. 不指定名字空间的变量或函数都是当前名字空间下的变量或函数。 2. 不定义名字空间的情况下,都属于全局名字空间。 3. 同一个名字空间可以定义多次。 #include using namespace std;namespace na void print(int n) /与名字空间nb的函数名相同 cout na:print: n endl; namespace nb void print(int n) /与名字空间na的函数名相同 cout nb:print: n endl; namespace na /同一个名字空间可以定义多次 void print2(int a, int b) print(a); print(b); int main ( ) na:print(3); 指定na下的print函数 nb:print(4); 指定na下的print函数 na:print2(5, 6); 指定na下的print2函数 return 0;二、using的使用使用“using namespace”可以使得后面不需要每次指定名字空间,相当于java中的import功能。不过,多次使用“using namespace”时,被指定的名字空间同时有效,很容易冲突。 #include using namespace std;namespace na void print(int a) cout na:print: a endl; namespace nb using namespace na; void print2(int a, int b) /这是nb自身的函数 print(a); /na的函数 print(b); /na的函数 void print(int n) /这也是nb自身的函数 cout nb:print: n endl; namespace nc using nb:print2; /指定只使用nb的print2()函数 void print(int a, int b, int c) print2(a, b); /这是nb的函数 nb:print(c); /using中没有指定,所以这儿必须用nb:来指定 int main ( ) using namespace na; print(2); /na的print()函数 /using namespace nb; /这样使用时,na和nb同时有效 /print(3); /编译系统不清楚究竟调用na和nb中的哪一个,因为函数名和参数相同 using namespace nc; /这样使用时,na和nc同时有效 print(4, 5, 6); /nc的print()函数的参数与na中的参数不同,所以这儿不出错。 using nb:print; /指定下面用的print()函数是nb的函数 print(7); return 0;三、用别名指定名字空间名字空间可以一层层嵌套,指定时也得一层层地指定,这样很不方便,一般用别名代替就方便多了。 #include using namespace std;namespace na namespace nb namespace nc int sum(int a, int b) return a + b; namespace A = na:nb:nc;int main ( ) cout na:nb:nc:sum(5, 11) endl; cout A:sum(6, 12) endl; return 0;四、没有名字的名字空间名字空间的名字也可以省略,称之为“无名名字空间”,无名名字空间经常被使用,其作用是“内部可以引用,而外部不能引用”。 #include using namespace std;namespace na namespace /无名名字空间 int sum(int a, int b) return a + b; int calc(int x, int y) return sum(x, y); /内部可以调用无名名字空间的变量或函数 i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论