- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二章 C++语法 2.8 函数 2.8.4 内联函数 许多C程序员使用带有参数的宏调用来完成简单函数的调用,但宏很受限,每个变元仅能被引用一次,有时会产生不可期望的副作用。例如: #define abs(v) ((v) 0 ? -(v): (v)) 当调用为 abs(++a) 时,将不能正确工作!因为在程序中每次遇到宏替换名时,就用所定义的字符串去替换它,那么替换的结果将是 ((++a) 0 ? -(++a) : (++a)) 得到的是a + 2的绝对值,这产生不期望的结果。 * 第二章 C++语法 2.8 函数 2.8.4 内联函数 宏替换的好处是没有系统的调用开销。函数正相反。为结合两者的优点,C++语言允许定义内联函数。 在函数原型前冠以“inline”表示一个内联函数。例如: inline void function(int a, int b); 编译时,在调用 function的地方用函数体替换,能够加快代码执行,减少调用开销。 * 第二章 C++语法 2.8 函数 2.8.5 函数递归 函数递归值得是一个函数直接或者间接调用自己的现象。在有的时候,递归是非常有用的一种调用方式,因为它可以减少代码量。不过,递归代码一般不容易理解,并且执行时对资源(主要的栈资源)消耗较大。 (ex2-23.cpp) * 第二章 C++语法 2.8 函数 2.8.6 函数重载 由于所有C++函数都有函数原型,因此C++容易表达重载(overload)一个函数名的概念。亦即它能区分多个函数,即使它们具有相同的名字但有不同的参数。 C++允许进行函数重载:多个函数具有相同的函数名,但有不同的参数表和各自的函数体。只要编译能区分参数表(参数个数和类型),就可以重载一个函数名。 * 第二章 C++语法 2.8 函数 2.8.6 函数重载 double abs(double num) { return ((num 0 ) ? -num : num); } long abs(long num) { return ((num 0) ? -num : num); } 多个同名函数的原型中不允许只有返回类型不相同,而函数名和参数表完全相同的情况。 * 第二章 C++语法 2.8 函数 2.8.6 函数重载 double abs(double num) { return ((num 0 ) ? -num : num); } long abs(long num) { return ((num 0) ? -num : num); } 多个同名函数的原型中不允许只有返回类型不相同,而函数名和参数表完全相同的情况。 * 第二章 C++语法 2.8 函数 2.8.7 变量的存储方式 全局变量:extern关键字 局部变量 auto register Static (ex2-24..25.cpp) * 第二章 C++语法 2.8 函数 2.8.8 标识符的作用范围 * int nGlobal1; void func1(int x) {//func1 int nVar1; … }//func1 int nGlobal2; void func2() {//func2 static int Var2; { //block 1 int nVar3; { //block 2 int nVar4; } //block 2 } //block 1 } //func2 nGlobal1 x nVar1 nGlobal2 nVar3 nVar4 func1 func2 nVar2 第二章 C++语法 2.9 异常处理机制 2.9.1 异常处理的意义 异常处理是C++语言的一个主要特征,它提出了出错处理更加完美的方法。 出错处理程序的编写不再繁琐,也不须将出错处理程序与“通常”代码紧密结合。在错误有可能出现处写一些代码,并在后面的单独节中加入出错处理程序。如果程序中多次调用一个函数,在程序中加入一个函数出错处理程序即可。 * 第二章 C++语法 2.9 异常处理机制 2.9.1 异常处理的意义 错误发生是不会被忽略的。如果被调用函数需发送一条出错信息给调用函数,它可向调用函数发送描述出错信息的对象。如果调用函数没有捕捉和处理该错误信号,在后续时刻该调用函数将继续发送描述该出错信息的对象,直到该出错信息被捕捉和处理。 * 第二章 C++语法 2.9 异常处理机制 2.9.1 异常处理的意义 使用异常便于: 使问题固定下来和重新调用这个(导致异常的)函数。 把事情修补好而继续运行,不去重试函数。 计算一些选择结果用于代替函数假定产生的结果。 在当前上下文环境尽其所能并且再把同样的异常弹
您可能关注的文档
- 语音信号及单片机处理 教学课件 作者 吴黎明 主编 王桂棠 吴正光 副主编 第十章.ppt
- 连锁企业门店营运管理 教学课件 作者 胡启亮 04-项目四 理货员与营业员作业管理.ppt
- 语音信号及单片机处理 教学课件 作者 吴黎明 主编 王桂棠 吴正光 副主编 第四章.ppt
- 连锁企业门店营运管理 教学课件 作者 胡启亮 05-项目五 门店收银作业管理.ppt
- 语音信号及单片机处理 教学课件 作者 吴黎明 主编 王桂棠 吴正光 副主编 第五章.ppt
- 连锁企业门店营运管理 教学课件 作者 胡启亮 06-项目六 门店卖场的规划与管理.ppt
- 语音信号及单片机处理 教学课件 作者 吴黎明 主编 王桂棠 吴正光 副主编 第一章.ppt
- 连锁企业门店营运管理 教学课件 作者 胡启亮 07-项目七 营业现场管理.ppt
- 连锁企业门店营运管理 教学课件 作者 胡启亮 08-项目八 门店促销活动的组织与实施.ppt
- 语音信号及单片机处理 教学课件 作者 吴黎明 主编 王桂棠 吴正光 副主编 目录.ppt
- 面向对象程序设计语言C++第2版 教学课件 作者 陈文宇 面向对象程序设计语言C++ - 第3章 类与对象.ppt
- 面向对象程序设计语言C++第2版 教学课件 作者 陈文宇 面向对象程序设计语言C++ - 第4章 深入类与对象.ppt
- 面向对象程序设计语言C++第2版 教学课件 作者 陈文宇 面向对象程序设计语言C++ - 第5章 运算符重载.ppt
- 面向对象程序设计语言C++第2版 教学课件 作者 陈文宇 面向对象程序设计语言C++ - 第6章 继承和派生.ppt
- 民航安全检查 教学课件 作者 张晗 服务礼仪规范.ppt
- 质量管理学 教学课件 作者 宋明顺 第三章设计质量管理.ppt
- 民航机务职业英语口语 教学课件 作者 屈静 Unit Seven.ppt
- 民用航空法基础 教学课件 作者 赵旭望、秦永红 第8章.ppt
- 质量管理学 教学课件 作者 宋明顺 第一章质量管理概论.ppt
- 魔法培训学校——Flash动画制作实例教程 教学课件 作者 王琢 第9讲.ppt
文档评论(0)