C++学习 之 函数的重载及内联(笔记)

1.函数的使用:

  1.1 将数组传递给函数:

    当需要给函数传递数组作为参数时,其实传过来的是实参的地址就相当于使用引用或指针作为形参。

    例:

    

int DisPlayArray(int Number[],int L)
{
    for(int i=0;i<L;i++)
        cout<<"Array["<<i+1<<"]: "<<Number[i]<<endl;
    return 0;
}    

  1.2 带默认值的函数参数:

    定义一个函数,当我们输入参数时就使用输入的参数,没有实参时就使用初始值。

    可以按如下定义:

double area(int r,int h=0);//有初始值的参数要在无初始值的参数的后面定义
int main()
{
    int r=4;
    area(r);//如果area函数的初始化后的参数定义在前,就导致我们传给形参r的值传给了h,这样函数调用时就缺了参数值,编译报错
   return 0; }

 

2.函数的重载:

  重载函数是指名称返回类型相同,但参数不同的函数。当我们需要同名函数并且参数不同时,重载函数就很有用。

  例如计算圆的面积和圆柱体的表面积:

double area(int r)//r为圆的半径参数
{
    cout<<3.14*r*r<<endl;
return 0; }
double area(int r,int h)//r为底面半径参数,h圆柱高度参数 { cout<<2*3.14*r*h+3.14*r*r*2<<endl;
return 0;
}

3.内联函数

  内联函数是会在调用它的地方直接展开的函数;内联函数的代码应该是简短的。常规函数调用会导致栈操作、微处理器跳转到函数等操作,这个过程是很快的;但是如果函数比较简短这些操作就显得性价比不是很高。

  例如我们声明了如下功能的函数(定义Pi的值):

double GetPi()
{
return 3.14159265; }

  像这样比较简单的函数我们就可使用内联的方法,从而减少调用用的时间。

  内联函数声明:

inline double GetPi()
{
    return 3.14159265;
}

  将函数声明为内联会导致代码急剧膨胀,尤其是当函数进行了大量复杂操作时,例如循环等。所以我们要尽可能少的使用内联函数,除非函数特别简单需要降低开销。

 

posted @ 2019-07-24 11:45  望烟听雨寒  阅读(260)  评论(0编辑  收藏  举报