- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
5.5.1内联函数 在C语言中,对于某些使用频繁并且函数体较小的函数为了提高运行效率,可将它写成带参数的宏定义的形式。而C++语言使用内联函数便可达到这样的目的。(it suggests that the compiler insert the complete body of the function in every context where that function is used. ) 在C++语言中引进内联函数的目的是为了提高使用函数的效率。 内联函数在执行时不是转去执行该函数的函数体,而是在编译时用函数体替换,这样可减少运行时的时间开销,进而提高运行效率。 内联函数格式如下: inline 类型 函数名 (参数表) { 函数体 } (Mainstream C++ compilers like Microsoft Visual C++ and GCC support an option that lets the compilers automatically inline any suitable function, even those not marked as inline functions.) 其中,inline是定义内联函数的关键字。(可能不是很重要) 使用内联函数时应注意: 内联函数中不能有循环语句和开关语句。(只是不提倡,语法是可以的) 内联函数的函数体不宜过大。1~5行。 在类结构中,在类体内定义的成员函数都是内联函数。 [例5.2]编程求出自然数1~5中各数的立方值。 程序内容如下: #include iostream.h inline int cube_int(int n); void main( ) { for(int i=1; i=5; i++) { int p=cube_int(i); couti‘*’i‘*’i‘=‘pendl; } } inline int cube_int(int n) { return n*n*n; } 5.5.2.重载函数 在C语言中,函数名与函数实现是一对一关系,int abs(int), long labs(long), double fabs(double);在C++语言中,允许函数名与函数实现是一对多的关系。 重载函数是指同一个函数名字对应着多个不同函数的实现。 例如,求两个变量之和的函数命名为add。在C++语言中,函数add可以用来求出两个整型数之和,也可以求出两个浮点型数之和。 由于不同类型的两个变量求和要对应着不同的实现,但是选用相同的函数名,这就是函数的重载,这种函数称重载函数。 函数add对于两个整型变量的实现如下所示: int add(int a,int b) { return a+b; } 函数add对于两个双精度浮点型变量的实现如下所示: double add(double x,double y) { return x+y; } 多种不同的实现对应着同一个函数名,在实现函数的调用时,采取如下的规则选择适当的实现: 根据调用函数的实参的个数、类型以及顺序来选择形参与此对应的函数实现。 因此,在定义重载函数时必须做到同一个函数名对应的不同实现中,其函数在参数的个数、类型及参数顺序上要有所不同。仅仅在返回值类型上不同是不够的。 [例5.3]编写重载函数求得一个数的平方。程序内容如下: #includeiostream.h void square(int x); void square(double x); void main( ) { square(9); //严格匹配 square(‘a’);//内部数据转换(97) square(1.26); square(3.455f); square((int)4.68); //强制转换 } 执行程序后,输出结果如下: 81 9409 1.5876 11.937 16 从例5.3中可以重载函数的定义、说明以及调用的方法。在选择重载函数的实现中,除了有严格匹配的情况外,还有经过自动或强制转换后进行匹配的。 6.4引用的概念 1.什么是引用 引用是某个变量或对象的别名,建立引用时,要用某个变量名或对象名对它初始化,则该引用便被“绑定”在那个变量或对象上。 引用不是变量,不占用内存空间。 引用的地址值就是被“绑定”的变量或对象的地址值。引用的值实际上是被“绑定”的变量或对象的值。实际上就是别名 对引用的改变就相当于对它所对应的变量或对象的改变,反过来,变量或对象的改变也造成它所对应的引用的改变。 2.引用的建立格式 引用的建立格式如下: 类型说明符引用名 = 变量或对象名 例如,int a
文档评论(0)