(C++完整课件)_第_5_章_C++程序的结构资料精要.ppt

(C++完整课件)_第_5_章_C++程序的结构资料精要.ppt

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

三四五 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档