面向对象编程(C)第01讲CH1C初步知识.pptVIP

  1. 1、本文档共65页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
例题:编写一个开发票程序,需要对发票的名细栏进行计算。 1.6 作用域 若为静态局部变量,则具有静态生存期。局部生存期的变量或对象驻留在内存的栈区。具有局部生存期的变量或对象若没有进行初始化,系统将对其进行初始化,由系统随机分配初值,但初值具有不确定性。 3.动态生存期 除以上两种情况外,其余情况下的变量或对象都具有动态生存期。动态生存期的变量驻留在内存堆中,具有动态生存期的变量或对象诞生于声明处,结束于该标志符作用域的技术处。一般情况下,动态生存期由运算符new和delete创建和释放,生存期开始与new为变量分配存储空间的时刻,结束于delete释放存储空间的时刻。 1.6.2全局和局部变量 从变量的作用域来分,可将变量分为全局变量和局部变量。 1.6 作用域 1.全局变量 全局变量的使用虽然方便了数据共享,但是也破坏了数据的隐蔽性,如果没有特殊需要,一般应尽量不定义全局变量。 2.局部变量 1.6 作用域 【例1.10】生存期和作用域测试 程序运行的结果为: 全局变量 x=5 静态局部变量 y=6 非静态局部变量 x=2 静态局部变量 z=9 全局变量 x=5 1.7多文件结构 C++程序设计中,既可以将程序源代码包含在一个程序文件中,也可以将不同的功能部分分散在不同的文件中。对于一个大型的应用程序,一个项目会包含多个头文件(.h)和源文件(.cpp)。一般将声明部分或说明部分(包括类的声明)形成.h文件,将函数的定义、类的实现及类的使用等形成.cpp文件。C++的文件结构方式允许对不同的文件进行单独编写,这样有利于软件开发的分工与合作,当全部源程序完成后,再进行编译、链接和运行。 头文件是C++源程序文件的重要组成部分,在进行程序开发时,一般将函数的声明、类型声明、类的说明及全局变量的声明等编辑在头文件中。C++标准库提供了很多头文件,它们是用户应用程序和函数库之间的桥梁和纽带。 1.7多文件结构 在C++程序设计中,一般将函数的实现、类的实现及主函数等编辑为.cpp文件。对于采用多文件结构实现的项目,应使用#include编译预处理指令将其它文件包含到当前项目文件中。 【例1.11】多文件程序构成 publicpart.h circle.cpp rectangle.cpp cylinder.cpp Exam1-11.cpp 1.7多文件结构 程序运行的结果为: 圆的面积:34.1946 矩形面积:30 圆柱面积:273.557 本例的规模很小,但是能够反映出分工与合作的思想,而且对于部分功能的改进不会大量地影响到整个程序的调整。 思考与练习 1、引用类型和指针类型的异同体现在哪些方面? 2、试做内联函数和外联函数的性能测试。 3、什么是函数重载?函数重载有何作用? 4、函数重载时可以设定缺省参数吗? 5、试比较传值调用和传递值调用的异同点。 6、申请动态空间要注意哪些问题? 7、多文件结构的程序有哪些优点? * 1.3.5 函数模板 函数模板是一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。 #include iostream using namespace std; template typename T T max (T a, T b, T c) { if(ba) a=b; if(ca) a=c; return a; } int main() { int a=3,b=1,c=4; float d=3.1, e=6.2, f=4.9; long g=69242; long h=-13,i=78241; cout max(a,b,c) endl; cout max(d,e,f) endl; cout max(g,h,i) endl; return 0; } 例1.8 求3个数的最大值。 1.3.5 函数模板 定义函数模板的一般形式为: template typename T 或 template class T T为类型参数, typename 和class 表示类型名。 如:template typename T1,class T2 只适用于函数参数个数相同而类型不同,且函数体相同的情况。 1.3.6 有默认参数的函数 如有一函数声明 float area (float r=6.5); 调用时可以不必给出实参:area(); 也可给出实参:area(7.5) 又如: float volume (float h, float r=12.5); 函数定义和函数声明两者在前的给出默认值,必须在函

文档评论(0)

yigang0925 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档