c++语言程序设计实验5(c++程序的结构)

c++语言程序设计实验5(c++程序的结构)

ID:5313573

大小:178.99 KB

页数:10页

时间:2017-12-07

c++语言程序设计实验5(c++程序的结构)_第1页
c++语言程序设计实验5(c++程序的结构)_第2页
c++语言程序设计实验5(c++程序的结构)_第3页
c++语言程序设计实验5(c++程序的结构)_第4页
c++语言程序设计实验5(c++程序的结构)_第5页
资源描述:

《c++语言程序设计实验5(c++程序的结构)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验5C++程序的结构本章讲述了程序模块间的关系及数据共享和保护机制。标识符的作用域与可见性问题影响着程序模块间的数据共享与传递,类的静态成员是该类所有对象共享的成员,友元关系使类与类之间或类与函数之间可以方便地共享数据与代码,用const修饰引用、对象或函数可以实现对共享数据的保护。1.作用域与可见性标识符有作用域、可见性和生存期的概念。作用域有四种:ò函数原型中参数的作用域:在左、右括号内。ò块作用域:在最近的一对大括号内。ò类作用域:只能作用于特定的成员名。假设类X有一个成员数据M,则在下列情况下有类作用域。©M

2、出现在X的成员函数内,则成员数据M相当于该函数内的一个局部变量,具有局部左右域,但前提是该函数中没有同名的变量M。©若x1为X的一个对象,则x1.M。©若ptr为X类型的一个指针,则ptr->M。©若M为X的静态数据成员,则X::M。ò文件作用域:不在前述各个作用域中出现的声明具有文件作用域。这是最大的作用域,开始于声明处,结束于文件的尾。标识符的可见性表示从内层向外层“看”时能看到什么,如果标识符在某处可见,则就可以在该处引用此标识符。标识符应声明在先,引用在后;如果某个标识符在外层中声明,且在内层中没有同一标识符的

3、声明,则该标识符在内层可见;如果在外层有声明,且在内层中又声明了同一名字的标识符,则外层作用域的标识符在内层不可见。例如:#includeinth=0,m=0,s=0;//声明全局变量,具有文件作用域和静态生存期classClock{public:Clock();Clock(Clock&c1);voidSetTime(intNewH,intNewM,intNewS);//三个形参均具有函数原型作用域voidShowTime();~Clock(){}private:intHour,Minute,Sec

4、ond;};Clock::Clock(){Hour=h;Minute=m;Second=s;//使用全局变量初始化类的成员,h,m,s在此//处可见,Hour,Minute,Second具有类作用域}Clock::Clock(Clock&c1){//c1.Hour,c1.Minute,c1.Sencond具有类作用域Hour=c1.Hour;Minute=c1.Minute;Second=c1.Sencond;}voidClock::SetTime(intNewH,intNewM,intNewS){Hour=NewH;

5、Minute=NewM;Second=NewS;}voidClock::ShowTime(){cout<

6、域//调用拷贝构造函数,以globClock为初始值ClockmyClock(globClock);//声明具有块作用域的对象,属于局部生存期对象cout<<"Settedtime1output:"<

7、lock.ShowTime();}2.对象的生存期对象从产生到结束的这段时间就是它的生存期。在对象生存期内,对象将保持它的值,直到被更新为止。对象生存期有:静态生存期和动态生存期。ò静态生存期:在文件作用域中声明的对象(全局对象)具有这种生存期;在函数内部对象的声明前冠以static关键字(静态局部生存期)。ò动态生存期:在块作用域中声明的,且没有用static修饰符的对象(动态局部对象)。这是以前我们所使用的普通变量。例如:以下的例子为变量的生存期,关于对象的生存期类似,也可以参考教材“例5_3”。#include<

8、iostream>intk=0;//声明并初始化全局变量,具有静态生存期intAverage(inti)//函数形参相当于动态局部变量,简称为:局部变量{staticintsum=0,count=0;//声明静态局部变量,具有全局寿命,但局部可见sum=sum+i;count++;returnsum/count;}voidmain

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

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

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