C++第五章C++程序的结构.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:59 大小:1.5MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

C++第五章C++程序的结构.ppt

C++第五章C++程序的结构.ppt

预览

免费试读已结束,剩余 49 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第五章C++程序的结构本章主要内容函数原形的作用域块作用域类作用域文件作用域可见性可见性同一作用域中的同名标识符#include<iostream.h>inti;//文件作用域intmain(){i=5;{inti;//块作用域i=7;cout<<"i="<<i<<endl;//输出7}cout<<"i="<<i;//输出5return0;}对象的生存期静态生存期#include<iostream.h>inti=5;//文件作用域intmain(){cout<<"i="<<i<<endl;return0;}i具有静态生存期动态生存期#include<iostream.h>voidfun();intmain(){fun();fun();}voidfun(){staticinta=1;inti=5;a++;i++;cout<<"i="<<i<<",a="<<a<<endl;}voidother(void){staticinta=2;staticintb;//a,b为静态局部变量,具有全局寿命,局部可见。//只第一次进入函数时被初始化。intc=10;//C为局部变量,具有动态生存期,//每次进入函数时都初始化。a=a+2;i=i+32;c=c+5;cout<<"---OTHER---\n";cout<<"i:"<<i<<"a:"<<a<<"b:"<<b<<"c:"<<c<<endl;b=a;}运行结果:---MAIN---i:1a:0b:-10c:0---OTHER---i:33a:4b:0c:15---MAIN---i:33a:0b:-10c:8---OTHER---i:75a:6b:4c:15例5-3具有静态、动态生存期对象的时钟程序//时钟类成员函数实现Clock::Clock()//构造函数{Hour=0;Minute=0;Second=0;}voidClock::SetTime(intNewH,intNewM,intNewS){Hour=NewH;Minute=NewM;Second=NewS;}voidClock::ShowTime(){cout<<Hour<<":"<<Minute<<":"<<Second<<endl;}ClockglobClock;//声明对象globClock,//具有静态生存期,文件作用域intmain()//主函数{cout<<"Firsttimeoutput:"<<endl;//引用具有文件作用域的对象:globClock.ShowTime();//对象的成员函数具有类作用域globClock.SetTime(8,30,30);ClockmyClock(globClock);//声明具有块作用域的对象myClockcout<<"Secondtimeoutput:"<<endl;myClock.ShowTime();//引用具有块作用域的对象}程序的运行结果为:Firsttimeoutput:0:0:0Secondtimeoutput:8:30:30数据与函数使用全局对象将函数与数据封装静态成员例5-4具有静态数据成员的Point类Point::Point(Point&p){X=p.X;Y=p.Y;countP++;}intPoint::countP=0;intmain(){PointA(4,5);cout<<"PointA,"<<A.GetX()<<","<<A.GetY();A.GetC();PointB(A);cout<<"PointB,"<<B.GetX()<<","<<B.GetY();B.GetC();}静态成员函数举例静态成员函数举例具有静态数据、函数成员的Point类Point::Point(Point&p){X=p.X;Y=p.Y;countP++;}intPoint::countP=0;intmain()//主函数实现{PointA(4,5);//声明对象Acout<<"PointA,"<<A.GetX()<<","<<A.GetY();A.GetC();//输出对象号,对象名引用PointB(A);//声明对象Bcout<<"PointB,"<<B.GetX()<<","<<B.GetY();Point::GetC();//输出对象号,类名引用}友元友元函数例5-6使用友元函数计算两点距离doubleDistance(Point&a,Point&b){doubl