缺省参数、函数重载、引用、内联函数

一、缺省参数

1、定义:在函数的声明、定义处,为形参指定一个默认值,在调用该函数时,若无指定实参,则使用该默认值

注意:缺省参数不能同时出现在定义和声明中,若函数已经声明,则缺省参数只需在声明出给定就好了。

2、分类:缺省参数分为全缺省参数和半缺省参数

全缺省参数:所有形参都赋予默认值;

int Add(int x = 1, int y = 2)
{
	return x + y;
}

半缺省参数:部分形参赋予了默认值;半缺省参数d的默认值只能从右往左给定,不能隔着给

//正确用法
int Add(int a, int b = 1, int c = 2{
	return a + b + c;
}

//错误缺省
int Add(int a = 0, int b, int c = 2)
{
	return a + b + c;
}

3、作用:提高程序的可扩充性

二、函数重载

1、定义:函数名相同,函数参数不同(类型不同、个数不同、顺序不同)的两个函数叫做函数重载。

2、函数重载的判断:函数名相同+函数参数类型、个数、顺序其中一个不同的两个函数即为函数重载。

如下:

//参数类型不同
void Fun1(int x,int y)
{
	cout<< x << y <<endl;
}
void Fun1(double x,double y)
{
	cout<< x << y <<endl;
}
//参数个数不同
void Fun2(int x)
{
	cout<< x <<endl;
}
void Fun2(int x,int y)
{
	cout<< x << y <<endl;
}
//参数顺序不同
void Fun3(int x,double y)
{
	cout<< x << y <<endl;
}
void Fun3(double x,int y)
{
	cout<< x << y <<endl;
}

int main()
{
	Fun1(1,2);
	Fun2(100);
	Fun3(1,1.1);
	return 0;
}

以上Fun1,Fun2,Fun3均构成函数重载。
注意:1、函数参数相同,返回值不同的同名函数不构成函数重载。

int Fun(int n)
{
	n++;
	return n;
}
double Fun(int n)
{
	n++;
	return n;
}

以上的两个Fun函数不构成函数重载。

2、参数本身是不是const对函数重载没有影响,影响的参数指向的类型。
如以下这两对都不是函数重载:

A:int cal(int a, int b); int cal(int const a, int const b);
B:int cal(int* a, int*b);int cal(int* const a, int* const b);

而以下这一对是函数重载:

C:int cal(int* a,int* b);int cal(const int* a, const int* b)

3、作用:函数名可以相同,提高复用性

三、引用

1、定义:引用简单说就是给变量起一个别名。

格式为:类型 &引用变量名 = 已定义过的变量名。

2、特点:引用必须被初始化、引用不能改变所指向的对象、没有指向NULL的引用,一个变量可以有多个别名。

3、用法:

引用作参数:

引用作返回值:

常引用:

四、内联函数

1、定义:如果要把一个函数定义为一个内联函数,只需要在其定义前加上关键字inline;在类定义中的定义的函数都是内联函数,即使没有使用 inline 关键字。

注意:inline只是给编译器一个建议,如果函数的代码行数过多或其它原因,编译器会无视inline关键字。

inline void print(char *s)
{
    printf("%s", s);
}

2、目的:取代#define宏定义函数,提高程序的运行效率。

3、利弊

利:避免了指令的来回跳转,加快程序执行速率。
弊:代码被多次复制,增加了代码量,占用给多的内存空间。

适用:函数本身内容较少,代码比较短,内容较为简单,函数内没有循环、递归等语句。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LQB木杉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值