函数与运算符的重载

函数与运算符的重载

ID:43459763

大小:723.50 KB

页数:61页

时间:2019-10-08

函数与运算符的重载_第1页
函数与运算符的重载_第2页
函数与运算符的重载_第3页
函数与运算符的重载_第4页
函数与运算符的重载_第5页
资源描述:

《函数与运算符的重载》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第5章函数与运算符的重载5.1三次方程求根程序的设计5.2函数的说明与使用5.3函数的嵌套与递归5.4函数与运算符的重载5.5函数与C++程序结构5.6程序实例15.1三次方程求根程序的设计--计算三次方程x3+px+q=0的一个实根的公式为xr=为了从系数p、q计算实根xr,把公式的计算分解为下面几步:1)令实数xr=A+B;2)令实数A,B分别为实数R,S的立方根:3)令R=-q/2+a,S=-q/2-a;(5.2)4)令a=sqrt((q/2)*(q/2)+(q/3)*(q/3)*(q/3));实际的计算过程为:用(4)计算得到a;用(3)计算得

2、到R和S;求出R和S的立方根A和B;最后得到实根xr。25.1三次方程求根程序的设计计算立方根的迭代公式Floatcuberoot(floatx){//精确到小数点后6位floatroot,croot;constfloateps=1e-6;croot=x;do{root=croot;croot=(2*root+x/(root*root))/3;}while(fabs(croot-root)>eps);return(croot);}35.1三次方程求根程序的设计#include<iostream.h>//program5-1#include<math.h

3、>floatcuberoot(float);voidmain(void){floatp,q,xr;cout<<″Inputparametersp,q:″;cin>>p>>q;floata=sqrt((q/2)*(q/2)+(q/3)*(q/3)*(q/3));xr=cuberoot(-q/2+a)+cuberoot(-q/2-a);cout<<endl<<″Therealrootoftheequationis″<<xr;}floatcuberoot(floatx){……}45.1三次方程求根程序的设计课本p129显示了不使用函数的程序。其中croot的

4、立方根的运算进行了两次,所以该计算程序要重复两次,当程序较长,或计算次数更多时,采用“子程序”的方案可以大大缩短程序的长度。特别是当程序比较复杂时,可以使得程序显得清晰,在program5_1中,main()中不涉及计算立方根的细节,显得简洁,而在cuberoot()中只解决一个浮点数的立方根的计算,也很清楚。另外,还可以把立方根的计算与C++语言中的运算符和标准函数对应起来,当在程序中对于cuberoot(y)给出了定义之后,就可以在主函数或其它用户定义的函数中,像运算符或标准函数那样使用了,如cuberoot(x)的使用与a+b,sin(x)的使用

5、没有什么区别。55.2函数的说明与使用C++程序允许两种函数说明语句的形式,我们把它们分别称为函数原型(或函数声明)和函数定义。1.函数原型函数原型(亦称函数声明)用来指出函数的名称,类型和参数,其格式为:[〈属性说明〉]〈类型〉〈函数名〉(〈参数表〉);intadd(inta,intb); inlinevoidswap(float&s,float&t); voidprint(char*);65.2.1函数的说明属性说明:可缺省,一般可以是下面的关键字之一:inline,static,virtual,friend等。inline表示该函数为内联函数;s

6、tatic表示该函数为静态函数;virtual表示该函数为虚函数;friend表示该函数为某类(class)的友元函数。类型:指函数的返回类型。函数名:一个标识符。参数表:它可能为空,void或〈类型〉〈参数名〉,〈类型〉〈参数名〉…的形式。main(),print(void),cuberoot(floatx),add(inta,intb)75.2.1函数的说明2.函数定义函数定义与函数原型的主要区别是它还包括函数体,其格式为:[〈属性说明〉]〈类型〉〈函数名〉(〈参数表〉)〈函数体〉属性说明,返回类型,函数名与函数原型一致,参数表中不可省略参数名。函

7、数体:由{和}括起来的复合语句即程序块。program5_1的最后12行就是一个函数定义。8函数的分类方法1从使用角度分类2从函数形式分类9(1)从使用角度分类从使用角度划分,可将函数分为:系统预定义的标准库函数(如,sin,abs等),以及由用户自定义的函数。程序中可直接使用(调用)系统预定义的标准库函数,但要求在调用前使用编译预处理指令include将对应的头文件包含进来。由用户自定义的函数与系统预定义的标准库函数的不同点在于,自定义函数的函数名、参数个数、函数返回值类型以及函数所实现的功能等都完全由用户程序来规定(指定)。10(2)从函数形式分类

8、从函数形式划分,可分为无参函数与有参函数两类。对无参函数来说,调用它们时不需要提供实际参数;而

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。