C++第5章 数据的共享与保护.ppt

C++第5章 数据的共享与保护.ppt

ID:53185476

大小:1.18 MB

页数:69页

时间:2020-04-17

C++第5章 数据的共享与保护.ppt_第1页
C++第5章 数据的共享与保护.ppt_第2页
C++第5章 数据的共享与保护.ppt_第3页
C++第5章 数据的共享与保护.ppt_第4页
C++第5章 数据的共享与保护.ppt_第5页
资源描述:

《C++第5章 数据的共享与保护.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库

1、第五章数据的共享与保护目录5.1标识符的作用域与可见性5.2对象的生存期5.3类的静态成员5.4类的友元5.5共享数据的保护5.6多文件结构和编译预处理命令5.7综合实例——个人银行账户管理程序5.8深度探索5.9小结25.1.1作用域——函数原形的作用域作用域是一个标识符在程序正文中有效的区域。函数原型中的参数,其作用域始于"(",结束于")"。例如,设有下列原型声明:doublearea(doubleradius);35.1标识符的作用域与可见性radius的作用域仅在于此,不能用于程序正文其他地方,因而可有可无。局部作用域函数的形参

2、,在块中声明的标识符,其作用域自声明处起,限于块中,例如:voidfun(inta){intb=a;cin>>b;if(b>0){intc;......}}45.1标识符的作用域与可见性——5.1.1作用域c的作用域a的作用域b的作用域类作用域类作用域作用于特定的成员名。类X的成员m具有类作用域,对m的访问方式如下:如果在X的成员函数中没有声明同名的局部作用域标识符,那么在该函数内可以访问成员m。通过表达式x.m或者X::m访问。通过表达式ptr->M55.1标识符的作用域与可见性——5.1.1作用域命名空间作用域65.1标识符的作用域与

3、可见性——5.1.1作用域目的:为了解决命名冲突一个命名空间可以将不同的标识符集合在一个命名作用域(namedscope)内声明命名空间的语法形式如下:namespace命名空间名{命名空间内的各种声明(函数声明、类声明……)}例如,声明一个命名空间NS:namspaceSomeNS{classSomeClass;voidSomeFun();}则引用标识符的方式如下,NS::SomeClassobj1;NS::SomeFun();7可以用using来指定命名空间或命名空间中的标识符,具体格式如下:using命名空间名::标识符名using

4、namespace命名空间名例如,经过以下声明:usingSomeNS::SomeClass; usingnamespaceSomeNS;回顾:usingnamespacestd;命名空间std中所有标识符都可直接引用在新的C++标准程序库中,所有标识符都声明在命名空间std中,头文件都不使用扩展名8两类特殊的命名空间-----全局命名空间和匿名命名空间全局命名空间是默认的命名空间,在显式声明的命名空间之外声明的标识符都在一个全局命名空间中。声明匿名命名空间的语法形式如下:namespace{命名空间内的各种声明(函数声明、类声明……)}

5、10例5-1作用域实例#includeusingnamespacestd;inti;//在全局命名空间中的全局变量namespaceNs{intj;}intmain(){i=5;Ns::j=6;{//子块usingnamespaceNs;inti;i=7;cout<<"i="<

6、见什么。如果标识在某处可见,则就可以在该处引用此标识符。115.1标识符的作用域与可见性块作用域类作用域命名空间作用域5.1.2可见性(续)标识符应声明在先,引用在后。如果某个标识符在外层中声明,且在内层中没有同一标识符的声明,则该标识符在内层可见。对于两个嵌套的作用域,如果在内层作用域内声明了与外层作用域中同名的标识符,则外层作用域的标识符在内层不可见。125.1标识符的作用域与可见性同一作用域中的同名标识符在同一作用域内的对象名、函数名、枚举常量名会隐藏同名的类名或枚举类型名。重载的函数可以有相同的函数名。135.1标识符的作用域与可

7、见性——5.1.2可见性5.2对象的生存期对象从产生到结束的这段时间就是它的生存期。在对象生存期内,对象将保持它的值,直到被更新为止。145.2.1静态生存期这种生存期与程序的运行期相同。在文件作用域中声明的对象具有这种生存期。在函数内部声明静态生存期对象,要冠以关键字static。155.2对象的生存期5.2.2动态生存期块作用域中声明的,没有用static修是的对象是动态生存期的对象(习惯称局部生存期对象)。开始于程序执行到声明点时,结束于命名该标识符的作用域结束处。165.2对象的生存期例5-2变量的生存期与可见性#include<

8、iostream>usingnamespacestd;inti=1;//i为全局变量,具有静态生存期。voidother(){staticinta=2;staticintb;//a,b为静态局

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

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

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