欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    面向对象程序设计-程序结构.pptx

    • 资源ID:88349722       资源大小:375.84KB        全文页数:24页
    • 资源格式: PPTX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    面向对象程序设计-程序结构.pptx

    会计学1面向对象程序设计程序结构面向对象程序设计程序结构程序结构:程序结构:一个一个C+程序是由一个或多个包含若干函数程序是由一个或多个包含若干函数定义的源文件组成。定义的源文件组成。只有一个源文件具有主函数只有一个源文件具有主函数main()学习目标:学习目标:1.初步理解初步理解+程序的结构程序的结构2.掌握多文件之间如何进行掌握多文件之间如何进行“沟通沟通”2第1页/共24页主要主要内容内容n n1外部存储类型n n2 静态存储类型n n3 作用域、生命期、可见性n n4 头文件n n5 多文件结构n n6 编译预处理3第2页/共24页1外部存储类型外部存储类型n n多个源文件间通过声明外部存储类型来进行沟通多个源文件间通过声明外部存储类型来进行沟通n n声明外部存储类型(extern)如:extern int n;extern void fn1();/extern可省略n n默认的函数声明或定义是extern的n n声明一般放在源文件开始位置n n带extern的外部变量声明,是声明,不是变量定义。4第3页/共24页外部存储类型的使用外部存储类型的使用外部存储类型的使用外部存储类型的使用/a.cpp/a.cpp源文件源文件#include#include using namespace std;using namespace std;int fun();int fun();/在在b.cppb.cpp中定义的中定义的extern int n;extern int n;/n n在在b.cppb.cpp中定义中定义int main()int main()coutnendl;coutnendl;n=20;n=20;coutfun()endl;coutfun()endl;5/b.cpp源文件源文件int n=6;int fun()n+;return n;第4页/共24页2 静态存储类型静态存储类型静态存储类型(static)如:static int n;static void fun();n n静态全局变量、静态函数:仅在其定义的源文件中可用,对于程序中其它源文件是无效的。n n静态局部变量:在屡次调用的同一个函数中共享的数据6第5页/共24页静态全局变量、静态函数静态全局变量、静态函数静态全局变量、静态函数静态全局变量、静态函数/a.cpp/a.cpp源文件源文件#include#include using namespace std;using namespace std;void fun();void fun();/在在b.cppb.cpp中定义的中定义的static int n;static int n;/仅在本源文件中使用仅在本源文件中使用int main()int main()n=20;n=20;coutnendl;coutnendl;fun();fun();7/b.cpp源文件源文件int n=6;void fun()coutn;coutendl;第6页/共24页3 作用域、生命期、可见性作用域、生命期、可见性作用域:标识符在程序中有效的范围。可见性:标识符在某位置可见,即指它可被引用生命期:实体存在的时间。n n全局变量、全局变量、局部变量、静态局部变量局部变量、静态局部变量n n静态局部变量驻留在全局数据区。静态局部变量驻留在全局数据区。n n从可见性来说,它与局部变量一致;从可见性来说,它与局部变量一致;n n从生命期来说,它与全局变量一致;从生命期来说,它与全局变量一致;n n当全局变量与局部变量当全局变量与局部变量同名同名时,全局变量不可见时,全局变量不可见8第7页/共24页局部变量、静态局部变量、全局变量局部变量、静态局部变量、全局变量局部变量、静态局部变量、全局变量局部变量、静态局部变量、全局变量int a=2;int a=2;void fn()void fn()int x=1;int x=1;/int a=3;/int a=3;static int y=0;static int y=0;x+=a;x+=a;y+=a;y+=a;coutx yendl;coutx yendl;int main()int main()for(int i=0;i10;+i)fn();for(int i=0;i10;+i)fn();9第8页/共24页处于生命期中的实体总是能被安全访问到,即使违处于生命期中的实体总是能被安全访问到,即使违背模块的黑盒准则背模块的黑盒准则int*f()static int a=1;/静态局部变量静态局部变量 a+;return&a;int main()int*pa=f();*pa=8;/ok,但偷越到了函数但偷越到了函数f的局部区的局部区 cout*pa“n”;/运行结果运行结果 810第9页/共24页生命期消亡的实体,其空间位置上的访问,得不到安全保证生命期消亡的实体,其空间位置上的访问,得不到安全保证int*f()int a=1;/局部变量局部变量 int*p=&a;return p;/a的生命期在此处消亡的生命期在此处消亡int main()int*pa=f();cout*pa“n”;cout*pa“n”;/1/419883011第10页/共24页4 头文件头文件n n程序经常由多个源文件组成,而具有外部存储类型的声明可以在多个源文件中引用,因此,可能要出现多次。n n应将声明等放在头文件中,例6_5。n n头文件起着源文件之间接口的作用,即表明了哪些信息对其它文件可见,哪些不可见。12第11页/共24页头头文件文件-源文件间的接口源文件间的接口/a1.h a1.cpp提供的资源提供的资源void f1();/a2.h a2.cpp提供的资源提供的资源void p();/a3.h a3.cpp提供的资源提供的资源void g1();void g2();void f2();void h();13第12页/共24页使用头使用头文件文件/a1.cpp#include”a2.h”#include”a3.h”void f1()if()p();g1();elseg2();h();14第13页/共24页/a2.cpp/a2.cpp#include”a1.h”include”a1.h”#include”a3.h”include”a3.h”static void f3();static void f3();int main()int main()f1();f1();f2();f2();f3();f3();使用头文件使用头文件void f3()f1();void p()f3();15第14页/共24页使用头文件/a3.cpp#include”a3.h”void h()void f2()g1();g2();void g1()void g2()16第15页/共24页头文件可包括:头文件可包括:头文件可包括:头文件可包括:n n全局数据声明全局数据声明n n函数声明函数声明n n类型说明类型说明n n全局常量定义全局常量定义n n内联函数定义内联函数定义n n模板声明和定义模板声明和定义n n名空间定义名空间定义n n类型定义类型定义n n预编译指令预编译指令n n注释注释头文件一定不能包括:头文件一定不能包括:v全局数据定义全局数据定义v函数定义函数定义17第16页/共24页5 多文件结构多文件结构1.1.预编译:产生翻译单元,该翻译单元以临时文件的形式存放在计算机中。2.2.编译:进行语法检查,产生目标文件.obj3.3.连接:若干个目标文件经过连接,产生可执行文件.exe。连接包括C+库函数和编制类库。18第17页/共24页5 多文件结构多文件结构19第18页/共24页6 编译预处理编译预处理n n#include包含指令#include#include#include“abc.h”#include“abc.h”n n#define宏定义指令n n条件编译指令#ifndef NULL#ifndef NULL#define NULL(void*)0)#define NULL(void*)0)#endif#endif20第19页/共24页头文件的可嵌套性,使得必须人为控制文件的展开操头文件的可嵌套性,使得必须人为控制文件的展开操头文件的可嵌套性,使得必须人为控制文件的展开操头文件的可嵌套性,使得必须人为控制文件的展开操作。作。作。作。(x.cpp(x.cpp中将出现二次中将出现二次中将出现二次中将出现二次struct Datestruct Date定义定义定义定义)/a.h/a.h#include”b.h”#include”b.h”/x.cpp#include”a.h”#include”b.h”/b.hstruct Date int year,month,day;21第20页/共24页若头文件中出现类或结构定义若头文件中出现类或结构定义若头文件中出现类或结构定义若头文件中出现类或结构定义,则应在其外面施加保则应在其外面施加保则应在其外面施加保则应在其外面施加保护护护护保护的方法是采用宏定义指令保护的方法是采用宏定义指令保护的方法是采用宏定义指令保护的方法是采用宏定义指令。以保证该类或结构定以保证该类或结构定以保证该类或结构定以保证该类或结构定义只执行一次义只执行一次义只执行一次义只执行一次/b.h#ifndef DATE#define DATE struct Date int year,month,day;#endif22第21页/共24页*名空间名空间*名空间:名空间:解决名字冲突的方法。所有名字都有空间归属,在一定的空间中,名字是不允许冲突的。引用一个名字时,加上空间归属的前缀,就可以唯一确定该名字所对应的实体解决名字冲突的方法。所有名字都有空间归属,在一定的空间中,名字是不允许冲突的。引用一个名字时,加上空间归属的前缀,就可以唯一确定该名字所对应的实体无前缀名字:无前缀名字:很多时候,名字都是无前缀的,这是因为事先已经指定了默认名字空间。如果默认名空间在两个以上,则必须注意名字冲突的可能性很多时候,名字都是无前缀的,这是因为事先已经指定了默认名字空间。如果默认名空间在两个以上,则必须注意名字冲突的可能性23第22页/共24页名空间的使用名空间的使用名空间的使用名空间的使用#includeusing std:cout;using std:endl;/-int abs(int a)return a0?a:-a;/-int main()int a=abs(-5);/使用自定义函数使用自定义函数 int b=std:abs(-5);/使用标准库函数使用标准库函数 coutaendlbendl;24第23页/共24页

    注意事项

    本文(面向对象程序设计-程序结构.pptx)为本站会员(莉***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开