当前位置: 首页>教育教学/培训 > 电大函授C++面向对象程序设计课件第三章 C++程序的结构.ppt

C++面向对象程序设计课件第三章 C++程序的结构.ppt

  • 卖家[上传人]:m****u
  • 文档编号:14506625
  • 上传时间:2024-08-01
  • 文档格式:PPT
  • 页数:32
  • 文档大小:249KB
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、18 十二月 2023C+面向对象程序设计第三章 C+程序的结构t3.1 作用域和可见性t3.2 生存期t3.3 变量的存储类型t3.4 编译预处理和多文件结构t项目设计2 预处理及多文件结构18 十二月 2023C+面向对象程序设计3.1 作用域和可见性t3.1.1 作用域t3.1.2 可见性18 十二月 2023C+面向对象程序设计3.1.1 作用域t作用域是标识符在程序中有效的范围l块作用域t当标识符的声明出现在由一对大括号所括起来的一段程序(块)内时,该标识符的作用域从声明点开始,到块结束的大括号处为止,该作用域的范围具有局部性。t例如,如下代码:void fun(int a)/a的作用域起始处int b=1;/b的作用域起始处 18 十二月 2023C+面向对象程序设计3.1.1 作用域l函数原型作用域t函数原型作用域指的是在声明函数原型所指定的参数标识符的作用范围。if(ab)int c;/c的作用域起始处c=a-b;coutc;./c的作用域终止处 /a和b的作用域终止处18 十二月 2023C+面向对象程序设计3.1.1 作用域t这个作用范围是在函数原型声明中的左、右括

      2、号之间。l函数作用域t在C+语言中,只有goto语句中的标号标识符具有函数作用域。t由于goto语句的滥用导致程序流程无规则、可读性差。因此现代程序设计方法不主张使用goto语句。l文件作用域t文件作用域是在所有函数定义之外声明的,其作用域从声明之处开始,直到文件结束。18 十二月 2023C+面向对象程序设计3.1.2 可见性t可见性是从对标识符的引用的角度来谈的概念。如果标识符在某处可见,则就可以在该处引用此标识符。程序运行到某一点能够引用到的标识符就是该处可见的标识符。t作用域指的是标识符有效的范围,而可见性是分析在某一位置标识符的有效性。18 十二月 2023C+面向对象程序设计3.1.2 可见性t作用域可见性的一般规则是:l标识符应声明在前,引用在后。l在同一作用域中,不能声明同名的标识符。l在没有互相包含关系的不同的作用域中声明的同名标识符互不影响。l对于两个嵌套的作用域,如果在内层作用域内声明了与外层作用域中同名的标识符,则外层作用域的标识符在内层不可见。18 十二月 2023C+面向对象程序设计3.1.2 可见性t作用域与可见性实例:#include using nam

      3、espace std;int i;/变量i具有文件作用域void main()i=5;/文件作用域的i赋初值 /子块1 int i;/变量i具有块作用域 i=7;couti=iendl;/输出7couti=iendl;/输出5 18 十二月 2023C+面向对象程序设计3.2 生存期t3.2.1 静态生存期t3.2.2 动态生存期18 十二月 2023C+面向对象程序设计3.2.1 静态生存期t静态生存期与程序的运行期相同,只要程序一开始运行,这种生命期的变量就存在,当程序结束时,其生命期就结束。l具有静态生命期的变量在定义时就分配固定的存储单元,并一直保持不变,直至整个程序结束。l如果要在函数内部的块作用域中声明具有静态生存期的变量,则要使用关键字static,例如下列语句声明的变量i便是具有静态生存期的变量,也称为静态变量:static int i;l静态生命期的变量,若无显式初始化,则自动初始化为0。18 十二月 2023C+面向对象程序设计3.2.2 动态生存期t在块作用域中声明的变量具有动态生存期,也可称为局部生存期变量。这种变量的生存期开始于程序执行经过其声明点时,而结束于

      4、其作用域结束处。l具有动态生存期的变量是在程序执行过程中,使用它的时候才分配存储单元,使用完毕就立即释放。18 十二月 2023C+面向对象程序设计3.2.2 动态生存期t变量的动态生存期与可见性例子#include using namespace std;int i=1;/i具有文件作用域和静态生存期void main(void)/a具有块作用域和静态生存期,局部可见。static int a;int b=-10;/b,c具有块作用域和动态生存期。int c=0;void other(void);cout-MAIN-n;cout i:i a:a b:b c:cendl;18 十二月 2023C+面向对象程序设计3.2.2 动态生存期 c=c+8;other();cout-MAIN-n;cout i:i a:a b:b c:cendl;i=i+10;other();void other(void)static int a=2;static int b;/a,b具有块作用域和静态生存期,局部可见 /只在第一次进入函数时被初始化。18 十二月 2023C+面向对象程序设计3.2.2 动态生

      5、存期 int c=10;/C具有块作用域和动态生存期 /每次进入函数时都初始化。a=a+2;i=i+32;c=c+5;cout-OTHER-n;cout i:i a:a b:b c:cendl;b=a;18 十二月 2023C+面向对象程序设计3.3 变量的存储类型t3.3.1 局部变量t3.3.2 全局变量t3.3.3 外部变量18 十二月 2023C+面向对象程序设计3.3.1 局部变量t具有块作用域的变量称为局部变量。t一般说来,用自动存储类型(auto)声明的变量都是限制在某个程序范围内使用的,即为局部变量。t使用关键字register声明寄存器类型的变量的目的是将所声明的变量放入寄存器内,从而加快程序的运行速度。t静态类型(static)变量也是一种局部变量。它和自动存储类型变量的最大不同之处在于:静态存储类型变量在内存中是以固定地址存放的,而不是以堆栈方式存放的。18 十二月 2023C+面向对象程序设计3.3.1 局部变量t在C+语言中,声明局部变量的时候加上关键字static就构成了静态局部变量。t局部变量实例参见教材 例 3-318 十二月 2023C+面向对象程序设

      6、计3.3.2 全局变量t具有文件作用域的变量称为全局变量。t在程序中声明的全局变量总是静态存储类型,若在全局变量前加上static,使该变量只在这个源程序文件内使用,称为全局静态存储变量或静态存储全局变量。t全局变量实例参见教材 例 3-418 十二月 2023C+面向对象程序设计3.3.3 外部变量 t使用关键字extern声明的变量称为外部变量。一般是指定义在本程序外部的变量。textern定义符的作用是将全局变量的作用域延伸到其它源程序文件。t在C+中,只有在两种情况下要使用外部变量。l第一种情况是在同一个源程序文件中,若定义的变量使用在前,声明在后,这时在使用前要声明为外部变量。(参见教材例 3-5)l第二种情况,当由多个源文件组成一个完整的程序时,在一个源程序文件中完全定义的变量要被其他若干个源文件引用时,引用的文件中要使用extern声明外部变量。(参见教材例 3-6)18 十二月 2023C+面向对象程序设计3.4 编译预处理和多文件结构t3.4.1 编译预处理命令t3.4.2 多文件组织结构18 十二月 2023C+面向对象程序设计3.4.1 编译预处理命令t预处理程序

      7、又称预处理器,它包含在编译器中。编译器在对源程序进行编译之前,首先要由预处理程序对程序文本进行预处理,把源代码转化成包含机器语言指令的目标文件。l宏定义指令#define和#undeft在程序中可用#define来定义一个符号常量,例如:#define PI 3.1415926t#define还可以定义带参数的宏,例如:#difine MIN(x,y)(x)(y)?(x):(y)18 十二月 2023C+面向对象程序设计3.4.1 编译预处理命令t#undef的作用是删除由#define定义的宏,使之不再起作用。l文件包含指令#includet所谓“文件包含”是指将另一个源文件嵌入到当前源文件中该点处。t文件包含指令有两种格式:l#include t这种格式用于嵌入C+提供的头文件。这些头文件一般位于C+系统目录的include子目录下。l#include 文件名 t预处理器遇到这种格式的包含指令后,首先在当前文件所在目录中进行搜索,如果找不到,再按标准方式搜索。这种方式适合于规定用户自己建立的头文件。18 十二月 2023C+面向对象程序设计3.4.1 编译预处理命令l条件编译指令t

      8、一般情况下,源程序中所有的语句都参加编译,但有时也希望根据一定的条件去编译源文件的不同部分,这就是“条件编译”。tC+提供的条件编译语句有下列几种常用的形式:l#if形式#if /当表达式值为真(非零)时编译程序段1#else/当表达式值为假(零)时编译程序段2#endif 18 十二月 2023C+面向对象程序设计3.4.1 编译预处理命令l#ifdef形式或#ifndef形式#ifdef(或#ifndef)#else#endif l#if-#elif形式#if/当表达式1值为真(非零)时编译程序段1#elif/当表达式1值为假、表达式2值为真时编译程序段2#elif /当表达式1、表达式n-1值均为假,表达式n值为真时编译程序段n#else /其他情况下编译程序段n-1#endif 18 十二月 2023C+面向对象程序设计3.4.1 编译预处理命令t编译预处理命令实例参见教材 例 3-7 18 十二月 2023C+面向对象程序设计3.4.2 多文件组织结构t在实际的程序设计中,一个程序通常由多个头文件和源文件组成,每个源文件是一个可编译的程序单位,头文件起着源文件之间接口的作用。

      9、t从下面的程序开发示意图来看看多文件的组织结构:18 十二月 2023C+面向对象程序设计3.4.2 多文件组织结构18 十二月 2023C+面向对象程序设计3.4.2 多文件组织结构t图中,源文件中含有包含头文件的预编译语句,经过预编译后,产生翻译单元,然后编译,进行语法检查,产生目标文件(.obj)。若干个目标文件经过连接,产生可执行文件(.exe)。t多文件组织结构实例参见 例 3-8 18 十二月 2023C+面向对象程序设计项目设计2 预处理及多文件结构t设计题目l预处理及多文件结构t设计概要l要求掌握多文件C+程序的编码方法和预处理的使用。t系统分析l书写头文件时应该遵循的几点规则:t为了防止头文件被重复引用,应当用ifndef/define/endif结构产生预处理块。18 十二月 2023C+面向对象程序设计项目设计2 预处理及多文件结构t用#include 格式来引用标准库的头文件(编译器将从标准库目录开始搜索)。t用#includee”filename.h”格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索)。t头文件中只存放“声明”而不存放“定义”。在C

      10、+语法中,类的成员函数可以在声明的同时被定义,并且自动成为内联函数。这虽然会带来书写上的方便,但却造成了风格不一致,弊大于利。建议将函数的定义与声明分开,不论该函数体有多么小。t不提倡使用全局变量,尽量不要在头文件中出现象extern int value 这类声明。l定义文件主要也是由三部分组成:定义文件开头处的版权和版本声明、对一些头文件的引用和程序体的实现。18 十二月 2023C+面向对象程序设计项目设计2 预处理及多文件结构t功能模块设计 l在校园信息管理系统中,所有的功能模块都会分别封装起来,然后由用户操作界面部分程序,根据用户的选择,调用执行不同的功能。l用户操作界面部分程序代码,将存放在main.cpp中,所有程序中将使用到的头文件将统一放在main.h文件中。t完整程序代码参见教材项目设计218 十二月 2023C+面向对象程序设计项目设计2 预处理及多文件结构t总结 l本章项目设计主要从预处理及多文件结构入手,论述C+/C编程风格。难度不高,但是细节比较多。别小看这些内容,提高程序代码质量就是要从这些点点滴滴做起。世上不存在最好的编程风格,一切因需求而定。如果读者觉得

      《C++面向对象程序设计课件第三章 C++程序的结构.ppt》由会员m****u分享,可在线阅读,更多相关《C++面向对象程序设计课件第三章 C++程序的结构.ppt》请在八斗文库上搜索。

      点击阅读更多内容
    TA的资源 更多>
  • 《MATLAB图像处理实例详解》课件Chapter_9o第9章彩色图像处理.pptx

    《MATLAB图像处理实例详解》课件Chapter_9o第9章彩色图像处理.pptx

  • 《MATLAB图像处理实例详解》课件Chapter_6i第6章图像复原技术.pptx

    《MATLAB图像处理实例详解》课件Chapter_6i第6章图像复原技术.pptx

  • 《MATLAB图像处理实例详解》课件Chapter_13a第13章小波在图像处理中的应用.pptx

    《MATLAB图像处理实例详解》课件Chapter_13a第13章小波在图像处理中的应用.pptx

  • 《Windows Server操作系统维护与管理项目教程》课件学习情境4.pptx

    《Windows Server操作系统维护与管理项目教程》课件学习情境4.pptx

  • 《MATLAB图像处理实例详解》课件Chapter_11o第11章图像特征分析.pptx

    《MATLAB图像处理实例详解》课件Chapter_11o第11章图像特征分析.pptx

  • 《中外广告史》课件第七章ppt.pptx

    《中外广告史》课件第七章ppt.pptx

  • 《经济学原理与应用》课件第8章ppt.pptx

    《经济学原理与应用》课件第8章ppt.pptx

  • 《企业内部控制与制度设计(第3版)》课件项目五销售业务内部控制与制度设计.pptx

    《企业内部控制与制度设计(第3版)》课件项目五销售业务内部控制与制度设计.pptx

  • 《经济学原理与应用》课件第4章ppt.pptx

    《经济学原理与应用》课件第4章ppt.pptx

  • 《企业内部控制与制度设计(第3版)》课件项目三采购业务内部控制与制度设计.pptx

    《企业内部控制与制度设计(第3版)》课件项目三采购业务内部控制与制度设计.pptx

  • 《资产评估》课件项目 八企业价值评估.ppt

    《资产评估》课件项目 八企业价值评估.ppt

  • 《经济学原理与应用》课件第7章ppt.pptx

    《经济学原理与应用》课件第7章ppt.pptx

  • 《人员测评原理与方法(第三版)》课件第十一章 个人资料的分析与评鉴.pptx

    《人员测评原理与方法(第三版)》课件第十一章 个人资料的分析与评鉴.pptx

  • 课件《客舱设施与服务》(模块一实操).pptx

    课件《客舱设施与服务》(模块一实操).pptx

  • 《新编文学理论(第二版)》课件第七章.pptx

    《新编文学理论(第二版)》课件第七章.pptx

  • 课件《客舱设施与服务》(模块三案例).pptx

    课件《客舱设施与服务》(模块三案例).pptx

  • 《资产评估》课件项目四 机器人设备评估.ppt

    《资产评估》课件项目四 机器人设备评估.ppt

  • 《企业纳税实务(第3版)》项目一、项目二.ppt

    《企业纳税实务(第3版)》项目一、项目二.ppt

  • 《酒吧服务与管理(第3版)》课件模块一酒吧概述.ppt

    《酒吧服务与管理(第3版)》课件模块一酒吧概述.ppt

  • 《营销心理学》课件项目二 探索消费者的心理过程.pptx

    《营销心理学》课件项目二 探索消费者的心理过程.pptx

  • 《人员测评原理与方法(第三版)》课件第五章智能测评.pptx

    《人员测评原理与方法(第三版)》课件第五章智能测评.pptx

  • 《人员测评原理与方法(第三版)》课件第七章 胜任素质测评.pptx

    《人员测评原理与方法(第三版)》课件第七章 胜任素质测评.pptx

  • 《银行产品推广与服务》课件.pptx

    《银行产品推广与服务》课件.pptx

  • 《客舱设施与服务》模块二练习题答案.docx

    《客舱设施与服务》模块二练习题答案.docx

  • 《经济学原理与应用》课件第3章ppt.pptx

    《经济学原理与应用》课件第3章ppt.pptx

  • 《中外广告史》课件第十章.pptx

    《中外广告史》课件第十章.pptx

  • 《酒吧服务与管理(第3版)》教案教案(模块十三).docx

    《酒吧服务与管理(第3版)》教案教案(模块十三).docx

  • 《跨境电商通关实务(第2版)》课件2021课件4关务技能3-报关单填制.ppt

    《跨境电商通关实务(第2版)》课件2021课件4关务技能3-报关单填制.ppt

  • 《客舱设施与服务》模块一练习题.docx

    《客舱设施与服务》模块一练习题.docx

  • 《资产评估》课件项目一 资产评估基本理论.ppt

    《资产评估》课件项目一 资产评估基本理论.ppt

  • 《经济学原理与应用》课件第1章ppt.pptx

    《经济学原理与应用》课件第1章ppt.pptx

  • 《企业内部控制与制度设计(第3版)》同步训练参考答案.doc

    《企业内部控制与制度设计(第3版)》同步训练参考答案.doc

  • 点击查看更多
    猜你喜欢
  • 急诊护理个人年度总结.docx

    急诊护理个人年度总结.docx

  • 护理部年终工作总结范文.docx

    护理部年终工作总结范文.docx

  • 2021年保安工作总结范文4篇.docx

    2021年保安工作总结范文4篇.docx

  • 关于校园环保倡议书范文.docx

    关于校园环保倡议书范文.docx

  • 精准扶贫XX省贫困户申请书.docx

    精准扶贫XX省贫困户申请书.docx

  • 2021快销业务员年度工作总结.docx

    2021快销业务员年度工作总结.docx

  • 2021机关人事工作总结.docx

    2021机关人事工作总结.docx

  • 护士工作总结及工作计划.docx

    护士工作总结及工作计划.docx

  • 规划局作风问题工作安排.docx

    规划局作风问题工作安排.docx

  • 2021年采购内勤工作总结范文.docx

    2021年采购内勤工作总结范文.docx

  • 2021年度UI设计师工作总结范文.docx

    2021年度UI设计师工作总结范文.docx

  • 2021家装顾问年终个人总结.docx

    2021家装顾问年终个人总结.docx

  • 关于溺水安全的警示语.docx

    关于溺水安全的警示语.docx

  • 计生事业单位工作人员年度考核个人总结范文.docx

    计生事业单位工作人员年度考核个人总结范文.docx

  • 行政前台月度总结报告.docx

    行政前台月度总结报告.docx

  • 护士年终总结模板.docx

    护士年终总结模板.docx

  • 保安个人年度工作总结范例.docx

    保安个人年度工作总结范例.docx

  • 2021旅行社导游年度总结.docx

    2021旅行社导游年度总结.docx

  • 百货采购工作总结.docx

    百货采购工作总结.docx

  • 环境保护局市级文明单位标兵申报材料_1.docx

    环境保护局市级文明单位标兵申报材料_1.docx

  • 急诊科护师个人工作总结.docx

    急诊科护师个人工作总结.docx

  • 2021年大学毕业生自我鉴定范文.docx

    2021年大学毕业生自我鉴定范文.docx

  • 护理专业实习个人工作总结范文【三篇】.docx

    护理专业实习个人工作总结范文【三篇】.docx

  • 护士培训年度总结范文.docx

    护士培训年度总结范文.docx

  • 2021年车间主任工作总结.docx

    2021年车间主任工作总结.docx

  • 2021年部门的工作总结范文.docx

    2021年部门的工作总结范文.docx

  • 2021年采购助理年终工作总结.docx

    2021年采购助理年终工作总结.docx

  • 护理工作总结汇报.docx

    护理工作总结汇报.docx

  • 保安2021年工作总结范文.docx

    保安2021年工作总结范文.docx

  • 国土资源管理工作个人汇报体会.docx

    国土资源管理工作个人汇报体会.docx

  • 2021建筑工程师工作总结范文精选.docx

    2021建筑工程师工作总结范文精选.docx

  • 2021年底儿科护师个人总结.docx

    2021年底儿科护师个人总结.docx

  • 护理毕业生实习个人总结三篇.docx

    护理毕业生实习个人总结三篇.docx

  • 兼职导游年终个人工作总结范本.docx

    兼职导游年终个人工作总结范本.docx

  • 保安部年终工作总结_1.docx

    保安部年终工作总结_1.docx

  • 2021年担保公司工作总结范文.docx

    2021年担保公司工作总结范文.docx

  • 2021内科护师年度总结.docx

    2021内科护师年度总结.docx

  • 检测部门个人年度总结.docx

    检测部门个人年度总结.docx

  • 四年级猫教学设计一等奖教案.docx

    四年级猫教学设计一等奖教案.docx

  • 行政前台每月工作总结范文.docx

    行政前台每月工作总结范文.docx

  • 保安工作个人总结范文.docx

    保安工作个人总结范文.docx

  • 护士长年度考核个人工作总结.docx

    护士长年度考核个人工作总结.docx

  • 护士长半年个人工作总结范文.docx

    护士长半年个人工作总结范文.docx

  • 检验检疫局工作思路.docx

    检验检疫局工作思路.docx

  • 2021年采购经理年终总结.docx

    2021年采购经理年终总结.docx

  • 护士长半年工作总结精选.docx

    护士长半年工作总结精选.docx

  • 保安部工作总结范文.docx

    保安部工作总结范文.docx

  • 八年级英语教案9篇 .docx

    八年级英语教案9篇 .docx

  • 2021年春季幼儿园教育教学工作总结.docx

    2021年春季幼儿园教育教学工作总结.docx

  • 关于本文
    本文标题:C++面向对象程序设计课件第三章 C++程序的结构.ppt
    链接地址:https://www.badou.com/doc/14506625.html
    收起
    展开