- 1、本文档共42页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
本章主要内容 作用域与可见性 对象的生存期 数据与函数 静态成员 共享数据的保护 友元 编译预处理命令 多文件结构和工程 5.1 面向对象程序的结构 5.1.1 作用域和生存期 1. 作用域 1) 函数原型作用域 函数原型作用域开始于函数原型声明的左括号“(”,结束于右括号“)”。例如: double Area(double length, double width); 函数原型作用域是C++程序中最小的作用域。 由于形参length和width只在括号之内有效,在程序的其它地方无法引用这个标识符,如果要引用,必须重新定义。因此,这里的标识符length和width实际上是可有可无的,省去它,也决不会影响到程序的编译和运行结果。例如: double Area(double, double); 2) 块作用域 块作用域又称局部作用域。由一对花括号“{ }”所括起来的块中声明的标识符的作用域从声明处开始,一直到块结束的花括号为止。例如: #includeiostream.h void main( ) { void fun1( ) ; int n; for( int i=0 ; i5; i++ ) { int m ; if( i%2 ) n++ ; } m = n/2 ; //错误,m未定义 n = i ; fun1( ) ; //fun1( )函数调用 } void fun1( ) { couti=iendl ; //错误,i未定义 } 编译时,函数fun1( )中的语句: couti=iendl; 将出现一个未定义错误,这是因为块作用域不能延伸到子函数 中。 3) 文件作用域 #includeiostream.h int k; void main() { k=5; {k++; } { int k=7; k++; coutk=k; } cout“, k=kendl; } 程序运行结果为:k=8, k=6 可见性遵循的一般规则: (1) 标识符在引用前必须先声明。 (2) 在互相没有包含关系的不同作用域中声明同名的标识符时, 两标识符互不影响。 (3) 如果在两个或多个具有包含关系的作用域中声明了同名标识 符,则外层标识符在内层不可见。 2.生存期 1) 静态生存期 静态生存期与程序的运行期相同。具有文件作用域的变量具有静态生存期。如果要在函数内部的块作用域中声明具有静态生存期的变量,则要使用关键字static。 例如: static int k; 具有静态生存期的变量,也称为静态变量。 2) 局部生存期 在块作用域中声明的变量具有局部生存期。此生存期诞生于声明点,而终止于其作用域的结束处。具有局部生存期的变量都具有块作用域。但当在块作用域内将变量说明为静态变量时,该变量则具有静态生存期。 3) 动态生存期 动态生存期由程序中特定的函数 ( malloc( )和free( ) ) 调用或由操作符 ( new和delete ) 创建和释放。具有动态生存期的变量在内存的堆区分配空间。 3.局部变量和全局变量 1) 局部变量 局部变量包括自动(auto)变量、内部静态(static)变量和函数参数。 2) 全局变量 全局变量具有文件作用域。 //EX5_1.cpp : 演示局部变量和全局变量 #includeiostream.h int i = 1 ; //全局变量i: 静态生存期 void main( ) { static int a ; //声明局部静态变量a: 静态生存期 int b = -10 ; //声明局部变量b: 局部生存期 int c = 0 ; //声明局部变量c: 局部生存期 void other( void ) ; //声明函数other( ) cout“ main: i=i a=a b=b c= cendl ; c = c + 8 ; other( ) ; //调用函数other( ) cout“ main: i=i a=a b=b
您可能关注的文档
- 第五章第一节世界的人口要点解析.ppt
- 第五章运输与配送要点解析.ppt
- 第五章匝道设计要点解析.ppt
- 第五章-制冷与空调设备的试运转要点解析.ppt
- 第五章主要经济业务的账务处理要点解析.ppt
- (人教版,必修5)《锤炼思想:学习写得有文采》课件【31页】资料精要.ppt
- 第五章自动控制仪表要点解析.ppt
- (新人教版)二级语文下册《最大的书》课件资料精要.ppt
- 第五章遵守道德规范锤炼高尚品格要点解析.ppt
- (新人教版)生物八级上第五单元第一章第四节__鱼___资料精要.ppt
- 10《那一年,面包飘香》教案.docx
- 13 花钟 教学设计-2023-2024学年三年级下册语文统编版.docx
- 2024-2025学年中职学校心理健康教育与霸凌预防的设计.docx
- 2024-2025学年中职生反思与行动的反霸凌教学设计.docx
- 2023-2024学年人教版小学数学一年级上册5.docx
- 4.1.1 线段、射线、直线 教学设计 2024-2025学年北师大版七年级数学上册.docx
- 川教版(2024)三年级上册 2.2在线导航选路线 教案.docx
- Unit 8 Dolls (教学设计)-2024-2025学年译林版(三起)英语四年级上册.docx
- 高一上学期体育与健康人教版 “贪吃蛇”耐久跑 教案.docx
- 第1课时 亿以内数的认识(教学设计)-2024-2025学年四年级上册数学人教版.docx
文档评论(0)