C++的其它主题研讨.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C的其它主题研讨

C++面向对象程序设计教程 第8章 C++的其它主题 8.1.1 标准类型之间的转换 在C++中,某些标准类型之间可以进行转换,共有两种转换形式: 隐式类型转换 显式类型转换 / / / /ysj/hljdxb/ 隐式类型转换 隐式类型转换由C++编译器自动完成,用户不需干预,例如: int i = 2; // 整型变量 i = 6.8 + i; // 先将i自动转换为double型量,再与6.8相加得8.8 // 最后将结果转换为整型量得8 编译系统对小数常量6.8都作为双精度实型double处理,因此在求解表达式“6.8 + i”时,先将i的值2自动转换成双精度实型2.0,然后再与6.8相加,得到和为8.8,最后在向整型变量i赋值时,再将8.8自动转换为整数8,然后赋给i 显式类型转换 显式类型转换指程序员在程序中指定将一种类型的数据转换成另一指定的类型,显式类型转换也称为强制类型转换,一般使用格式为: 目标类型名(表达式) 例如 int(6.8); // 强制将双精度实型6.8转换为整型, 结果为整数6 C++也兼容C语言的显式类型转换方式,C语言的显式类型转换使用格式如下: (目标类型名)表达式 例如 (int)6.8; // 强制将双精度实型6.8转换为整型, 结果为型数6 8.1.2 类类型的转换 指定的类的对象可以与其它类型的数据(或对象)进行转换,采用两种类的成员函数进行转换: 转换构造函数 类类型转换函数 转换构造函数 转换构造函数就是单参数(特指没有其他参数,或其他参数都有默认值)的构造函数,这种构造函数能将参数类型转换为类类型,也就是将一个其他类型的数据(或对象)转换成一个指定的类的对象。 *类类型转换函数 类类型转换函数用于将类的对象转换为一个指定类型的数据(或对象) 。类型转换函数的声明格式如下: operator目的类型() const; 其中的目的类型就是要转换成的类型。 内置函数 在函数调用时,会有一定的时间开销和空间开销,这是由于函数调用之前要保存当前状态,在函数调用结束后要恢复调用前的状态。如果一个函数被频繁地调用,则造成的时间开销和空间开销也就会变得更加突出。 在C语言中,一般将较小的独立功能编制成带参数的宏,以避免被频繁调用时带来的时间和空间开销。例如: #define MAX(x, y) (x y ? y : x) // 求x,y的最大值 在预编译时,程序中每一个出现宏MAX调用的地方都会自动进行宏替换 内置函数 宏具有副作用,在C++中,引入了内置函数来解决这个问题,当编译器编译程序时,在出现内置函数调用的地方,会自动用实参初始化形参后的函数体来代替。由于此过程不是在程序执行阶段,所以就不存在保护现场和恢复现场的问题。但内置函数这种做法会相应地增加目标程序的代码量。所以在程序设计时,一般要求内置函数功能单一,并且函数体代码较少,有的书上将内置函数称为内联函数。 内置函数 内置函数定义的一般格式如下: inline 返回值类型 函数名(形参表) { …… // 函数体 } 内置函数与带参数的宏相似,但并不完全相同。宏定义是在预编译时只作简单的字符置换而不作语法检查,内置函数是在编译时进行处理,要进行语法检查 类的成员函数也可以定义内置函数,在类体中定义的成员函数的规模一般都很小,但系统调用函数的过程花费的时间开销与空间相对比较大。如果在类体中定义的成员函数中不包括循环和条件控制结构,C++系统会自动将它们作为内置函数来处理。这是因为循环语句代码量少,但可能运行时间长,对于条件语句,在涉及多条件时,如switch语句,会使得代码量变多 如果成员函数不在类体内定义,而是在类体外定义,系统并不将其默认为内置函数,如果要将这类成员函数定义内置函数,在定义函数时应加上关键字inline 由于当前计算机运行速度快和存储容量都非常大,因此在实际编程时不必过份考虑是否程序速度快或是否占用的存储空间大的问题,也就是说不必过多关心内置函数的问题。 *异常处理 有些程序在运行过程中会出现异常,得不到正确的运行结果,甚至可能导致程序非正常终止,这类错误是程序调试中的一个难点。C++采取异常处理机制来加以解决,C++异常处理机制由3个部分组成:检查(try)、抛出(throw)和捕捉(catch)。将需要检查的语句放在try块中,当出现异常时throw用于发出一个异常信息,形象地称为抛出异常,而catch用于捕捉异常信息,如果捕捉到异常信息后,就在catch块中处理。 *异常处理 异常处理的基本结构throw、try和catch的一般使用形式如下: throw 表达式; // 抛出异常 try // 检查异常 { …… // 检查异常语

文档评论(0)

骨干 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档