0
点赞
收藏
分享

微信扫一扫

【函数】内联函数、带默认参数值的函数、函数重载

半夜放水 2022-01-15 阅读 63
c++

1、函数

C++ 继承了 C 语言的全部语法,也包括函数的定义与使用方法。

1.1 函数的定义与使用

主函数是程序执行的开始点,由主函数调用子函数,子函数还可以调用其他子函数。

1.2 函数的定义

形参的作用是实现主调函数与被调函数之间的联系,通常将函数所处理的数据、影响函数功能的因素或

者函数处理的结果作为形参。

只有函数被调用时才由主调函数将实际参数(实参)赋予形参。

一个函数可以有返回值,也可以没有返回值,没有返回值的时候类型标识符是 void ,可以不写 return

句,也可以写一个不带表达式的 return 表示结束当前函数的调用。

1.3 函数的调用

在调用函数前,要声明或定义该函数。

1.4 函数的参数传递

值传递:单向传递;

引用传递:可以实现双向传递,声明引用的时候必须同时对它初始化,指向一个已存在的对象,并且不

能更改;

常引用作参数可以保障实参数据的安全。

2、内联函数

声明时使用关键字 inline

编译时在调用处用函数体进行替换 , 节省了参数传递、控制转移等开销。

注意:

内联函数应是比较简单的函数。如果已定义的函数多于一行,编译器会忽略 inline 限定符。

内联函数体内不能有循环语句和 switch 语句。

内联函数的声明必须出现在内联函数第一次被调用之前。 对内联函数不能进行异常接口声明。

下面是一个实例,使用内联函数来返回两个数中的最大值:

#include <iostream>
 
using namespace std;

inline int Max(int x, int y)
{
   return (x > y)? x : y;
}

// 程序的主函数
int main( )
{

   cout << "Max (20,10): " << Max(20,10) << endl;
   cout << "Max (0,200): " << Max(0,200) << endl;
   cout << "Max (100,1010): " << Max(100,1010) << endl;
   return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:

3、带默认参数值的函数

3.1 有默认参数值的形参必须放在最后:

3.2 在相同的作用域内,不允许在用一个函数的多个生命中对同一个参数的默认值重复定义,即使前后定义的值相同也不行:

int add(int x = 5,int y = 6); 
//原型声明在前 
int main() { 
    add(); 
}
int add(int x,int y) { 
//此处不能再指定默认值 
    return x + y; 
}
int add(int x/* = 5*/,int y/* = 6*/) { 
//只有定义,没有原型声明 
    return x + y; 
}
int main() { 
    add(); 
}

4、函数重载

定义:两个以上的函数,具有相同的函数名,但是形参的个数或者类型不同,编译器根据实参和形参的

类型及个数的最佳匹配,自动确定调用哪一个函数。

重载函数的形参必须不同 : 个数不同或类型不同。

当使用具有默认形参值得函数重载形式时,需要注意防止二义性:

 

举报

相关推荐

0 条评论