命名空间与异常处理

命名空间与异常处理

ID:37079220

大小:235.10 KB

页数:39页

时间:2019-05-11

命名空间与异常处理_第1页
命名空间与异常处理_第2页
命名空间与异常处理_第3页
命名空间与异常处理_第4页
命名空间与异常处理_第5页
资源描述:

《命名空间与异常处理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C++程序设计第11章命名空间与异常处理1、命名空间2、异常处理3、模板主要内容一、命名空间定义:是一种将程序库名称封装起来的方法,它就像在各个程序库中立起一道道围墙。比如Windows中,同一目录下不能有两个相同名称的文件,但如果把这两个文件分别放在不同的目录下,就不会存在同名文件的冲突问题。例如:C:windowstest.txt和C:mydatatest.txt其中前者在C:windows目录下,后者在C:mydata目录下,这些目录就相当于命名空间,它们将同名的文件隔离在不同的目录范围内,从而避免了同名文件的冲突问题。同样道理,假如当前目录是C

2、:windows,使用该目录下的test.txt不必指明目录名,但要使用C:mydata下的test.txt,就必须使用目录名C:mydata。理解这些对后面命名空间的使用非常有益。namespace命名空间名//有名的命名空间{ <声明序列可选> } namespace//无名的命名空间{ <声明序列可选> }命名空间的形式在两个头文件中分别定义一个有名字的命名空间,其中各有一个类String,但它分属不同的命名空间,即分别变成了one::String()以two::String()。这样,就可以通过声明命名空间来区分不同的类或函数等等了。【例11.1】

3、有名的命名空间的简单定义//two.hnamespacetwo{classString{...};}//one.hnamespaceone{charfunc(char);classString{...};}namespaceOuter//命名空间Outer的定义{inti;//Outer的成员i在内部定义namespaceInner//子命名空间Inner的内部定义{voidf(){i++;}//Inner的成员f()的内部定义,其中的i为Outer::iinti;voidg(){i++;}//Inner的成员g()的内部定义,其中的i为Inner::ivoidh

4、();//Inner的成员h()的声明}//Inner定义的结尾voidf();//命名空间Outer的成员f()的声明}//Outer定义的结尾voidOuter::f(){i--;}//命名空间Outer的成员f()的外部定义voidOuter::Inner::h(){i--;}//命名空间Inner的成员h()的外部定义【例11.2】命名空间的成员在外部定义【例11.3】无名命名空间的定义namespace//注意是无名命名空间!{inti;voidf(){/*……*/}}intmain(){i=0;//可直接使用无名命名空间中的成员if();//可直接使用

5、无名命名空间中的成员f()}由于命名空间没有名字,在其它文件中自然就没法使用,它只在本文件的作用域内有效。【例11.4】命名空间的引用对命名空间中成员的引用,需要使用命名空间的作用域限定运算符:://out1.cpp#include"out.h"#includeintmain(){Outer::i=0;Outer::f();//Outer::i=-1;Outer::Inner::f();//Outer::i=0;Outer::Inner::i=0;Outer::Inner::g();//Inner::i=1;Outer::Inner::h();

6、//Inner::i=0;std::cout<<"Hello,World!"<

7、要使用的少数几个成员,提倡使用using声明,而不应该使用using编译指令。3、对需要反复使用同一个命名空间的许多数成员时,使用using编译指令,才被认为是可取的。如果要使用C++标准程序库的任何标识符时,可以有三种方式:1)直接指定标识符std::cout<

8、间的使用规

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。