您的位置:首页 > 编程语言 > C语言/C++

c++基础之函数新特性

2017-04-01 22:28 197 查看
一、函数参数默认值

   void fun(int i,int j=5,int k=10){}//✔

   void fun(int i,int j=1,int k){}//✘如果后面的参数没有默认值,前面的参数也不能有默认值

二、默认值覆盖

fun(10,20,30)//在没有实参的时候使用默认值,否则实参覆盖默认值。

  例子:

#include <iostream>
using namespace std;
void fun(int i,int j=5,int k=10)
{
cout<<i<<" "<<j<<" "<<k<<endl;
}
int main()
{
fun(1);
fun(1,2);
fun(1,2,3);
return 0;
}
运行结果:



三、函数重载

1.定义

在同一作用域内,可以有一组具有相同函数名,不同参数列表的函数,这组函数被称为重载函数。

2.例子:

#include <iostream>
using namespace std;
int getMax(int x,int y)
{
return (x>y)?x:y;
}
double getMax(double x,double y)
{
return (x>y)?x:y;
}
int main()
{
cout<<getMax(3,2)<<endl;
cout<<getMax(1.2,1.5)<<endl;
return 0;
}
运行结果:



注:c++会自动匹配精确度高的函数。

四、内联函数inline

1.定义

  内联函数是指用inline关键字修饰的函数

2.编译时将函数体代码和实参代替函数调用语句,节省了时间。

 例子:

#include <iostream>
using namespace std;
inline int getMax(int x,int y)
{
return (x>y)?x:y;
}
int main()
{
cout<<getMax(3,2)<<endl;
return 0;
}


3.缺点

  (1)内联函数是建议性的,由编译器决定。

  (2)适用于逻辑简单的,不能包含while、for循环。

  (3)递归函数没法使用内联函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: