博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++内联函数、函数重载与函数缺省参数
阅读量:6008 次
发布时间:2019-06-20

本文共 1098 字,大约阅读时间需要 3 分钟。

一、内联函数

  • 背景:函数调用是有时间开销的。如果函数本身只有几条语句,执行非常快,而且函数被反复执行很多次,相比之下调用函数所产生的这个开销就会显得比较大。
  • 目的:为了减少函数调用的开销,引入了内联函数机制。编译器处理对内联函数的调用语句时,是将整个函数的代码插入到调用语句处,而不会产生调用函数的语句。 
  • 代码实例:(inline代表内联函数)
inline int Max(int a,int b) {  	if( a > b) return a;  	return b;  }

二、函数重载

  • 定义:一个或多个函数,名字相同,然而参数个数或参数类型不相同,这叫做函数的重载。 
  • 以下三个函数是重载关系:  

int Max(double f1,double f2) {    } 

int Max(int n1,int n2) {   }  

int Max(int n1,int n2,int n3) {   } 

Max(3.4,2.5);      //调用 (1)  

Max(2,4);       //调用 (2)  

Max(1,2,3);      //调用 (3)  

Max(3,2.4);      //error,二义性 

优点:

  • 函数重载使得函数命名变得简单。
  • 编译器根据调用语句的中的实参的个数和类型判断应该调用哪个函数。 

三、函数缺省参数

  • 定义: C++中,定义函数的时候可以让最右边的连续若干个参数有缺省值,那么调用函数的时候,若相应位置不写参数,参数就是缺省值。 
  • 目的:函数参数可缺省的目的在于提高程序的可扩充性。
  • 优点:即如果某个写好的函数要添加新的参数,而原先那些调用该函数的语句,未必需要使用新增的参数,那么为了避免对原先那些函数调用语句的修改,就可以使用缺省参数。
  • 代码实例
void func( int x1, int x2 = 2, int x3 = 3) {  } func(10 ) ; //等效于 func(10,2,3) func(10,8) ; //等效于 func(10,8,3) func(10, , 8) ; //不行,只能最右边的连续若干个参数缺省

函数参数的缺省值也可以理解为函数参数的默认值。当你传入参数时,参数就是你传入的数,当你不给它参数时,参数就是默认值,也就是缺省值。

注:使用函数缺省参数要注意避免有函数重载的二义性

void valueX(int val = 0){	x = val;} int valueX(){	return x;}valueX();//错误,无法判断调用的是哪个valueX

转载于:https://www.cnblogs.com/long98/p/10352255.html

你可能感兴趣的文章
DP_1d1d诗人小G
查看>>
Python学习第二天-编写购物车
查看>>
BigTable——针对结构型数据的一种分布式存储系统
查看>>
python之处理异常
查看>>
遍历form表单里面的表单元素,取其value
查看>>
面试110道题
查看>>
python 08 文件操作
查看>>
强势解决:windows 不能在本地计算机中起动Tomcat参考特定错误代码1
查看>>
Gradle 配置debug和release工程目录
查看>>
curl指令的使用
查看>>
LNAMP第二版(nginx 1.2.0+apache 2.4.2+php 5.4)
查看>>
MongoDB repl set权限认证配置步骤
查看>>
java学习笔记(1)
查看>>
禁止Mysql默认端口访问Internet - MySQL - IT技术网
查看>>
基于用户投票的排名算法(二):Reddit
查看>>
css3中变形与动画(一)
查看>>
[XMove-自主设计的体感解决方案] 系统综述
查看>>
【LINUX学习】磁盘分割之建立primary和logical 分区
查看>>
变更 Linux、Ubuntu 时区、时间
查看>>
[共通]手机端网页开发问题及解决方法整理
查看>>