[理学]c++第一章.ppt

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

C++编译系统允许为两个或两个以上的函数取相同的函数名,但是形参的个数或者形参的类型不应相同,编译系统会根据实参和形参的类型及个数的最佳匹配,自动确定调用哪一个函数,这就是所谓的函数重载。 函数重载无需特别声明,只要所定义的函数与已经定义的同名函数形参形式不完全相同,C++编译器就认为是函数的重载。 C++允许在同一作用域内定义多个同名函数,但要求这些函数参数的类型或个数不相同。这个功能称为函数重载 在同一个作用域内,函数名相同,参数的类型或个数不同的函数称为重载函数。 重载函数的形参个数或类型必须至少有其中之一不同,不允许参数个数和类型都相同而只有返回值类型不同,这是由于系统无法从函数的调用形式判断与哪一个重载函数相匹配。 C语言规定:在同一作用域(例同一文件模块中)不能有同名的函数。 C++编译系统允许为两个或两个以上的函数取相同的函数名,但是形参的个数或者形参的类型不应相同,编译系统会根据实参和形参的类型及个数的最佳匹配,自动确定调用哪一个函数,这就是所谓的函数重载。 函数重载无需特别声明,只要所定义的函数与已经定义的同名函数形参形式不完全相同,C++编译器就认为是函数的重载。 C++允许在同一作用域内定义多个同名函数,但要求这些函数参数的类型或个数不相同。这个功能称为函数重载 在同一个作用域内,函数名相同,参数的类型或个数不同的函数称为重载函数。 重载函数的形参个数或类型必须至少有其中之一不同,不允许参数个数和类型都相同而只有返回值类型不同,这是由于系统无法从函数的调用形式判断与哪一个重载函数相匹配。 Ambiguous [?m?biɡju?s] 如果在函数说明或函数定义中为形参指定一个缺省值,则称此函数为带缺省参数的函数。当函数调用发生后,在形参表中等号后的各“缺省值”将起实参的传递作用。 注意:所有取缺省值的参数都必须出现在不取缺省值的参数的右边。亦即,一旦开始定义取缺省值的参数,就不可以再说明非缺省的参数。 如果函数有多个缺省参数,则缺省参数必须是从右向左定义,并且在一个缺省参数的右边不能有未指定缺省值的参数。如下列是错误的。 void fun(int a=3,int b=6,int c,int d); void fun(int a=65,int b=3,int c,int d=3); 需要特别注意的是如果在函数原型的声明中设置了函数参数的缺省值,则不可再在函数定义的头部重复设置,否则编译时将出现错误信息。 在C语言中,在函数调用时形参从实参获得参数值,所以实参的个数应与形参相同。有时多次调用同一函数时使用相同的实参值,C++允许给形参提供默认值,这样形参就不一定要从实参取值了。如有一函数声明: float Area(float r = 1.6); // 有默认值的函数声明 上面的函数声明指定参数r的默认值为1.6,如果在调用此函数时无实参,则参数r的值为1.6,例如: s = Area(); // 等价于Area(1.6) 默认参数应在函数名第一次出现时指定。 默认参数必须是函数参数表中最右边(尾部)的参数。例如: float Volume(float l = 10.0, float w = 8.0, float h);// 错误 float Volume(float l = 10.0, float w = 8.0, float h = 6.0);// 正确 对于上面正确的函数声明,可采用如下形式的函数调用: v = Volume(10.1, 8.2, 6.8); // 形参值全从实参得到,l=10.1,w=8.2,h=6.8 v = Volume(10.1, 8.2); // 最后1个形参的值取默认值,l=10.1,w=8.2,h=6.0 v = Volume(10.1); // 最后2个形参的值取默认值,l=10.1,w=8.0,h=6.0 v = Volume(); // 形参的值全取默认值,l=10.0,w=8.0,h=6.0 例如: void func(int x=1) { … } void func() { … } 则函数调用 func(); 就不知是调用那个函数了。 内联函数是C++为降低小程序调用开销的一种机制 在执行程序过程中如果要进行函数调用,则系统要将程序当前的一些状态信息存到栈中,之后进行虚实结合,同时转到函数的代码处去执行函数体语句,这些参数保存与传递的过程中

文档评论(0)

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

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

1亿VIP精品文档

相关文档