C++ 几种函数的解析

1、重载:同名不同参(参数的个数和类型不同)

区别于重写:重写是同样的函数定义,重写修改实现代码

重载:

#include <iostream>
using namespace std;
int main (int argc, const char * argv[])
{
    int max(int a,int b);
    int max(int a,int b ,int c);
    
    int a = 8;
    int b = -12;
    int c = 27;
     
    
    cout<<"max(a,b,c)="<<max(a,b,c)<<endl;
    cout<<"max(a,b)="<<max(a,b)<<endl;
    
       
    
    
        return 0;
}
 int max(int a,int b,int c)
{
    if(b>a)
        a = b;
    if(c>a)
        a=c;
    
    return a;
        
}
  
int max(int a,int b)
{
    if (a>b) {
        return a;
    }else
    {
        return b;
    }
    
}

**********************************

2、函数模版:

建立一个通用函数,函数类型和形参类型不具体指定,用一个虚拟的类型代表

通用函数定义: typename <typename T >

temlate <typename T>//模版声明

Tmax(T a,T b,T c)  //定义一个通用函数,用T作虚拟类型名

{if(b>a) a=b;
return a
}
int main(){

int m =15, int n = 125, int q=45;
 
   i = max(m,n,q);//调用模版函数,此时int代替了T  

}

3、有默认参数的函数:

很简单的就是给形参一个默认值:float  findnumbera = 3.6;

对于我在重载函数所给出的例子中,用带参函数也可以实现功能;

int max(int a,int b,int c = 0);

在比较两个数的时候,第三个数默认为0;

 

4、函数的嵌套调用:

C++中不允许作嵌套定义,不能完整的包含另一个函数

但是能够嵌套调用很熟,(再调用一个函数的同时,又可以调用另一个函数)

注意:调用之前必须对没一个函数作声明;

 

5、函数的递归调用:

  在调用函数的过程中又直接或间接的调用函数本身,

   献上一个例子:用递归法求阶乘

 

3、有默认参数的函数:

很简单的就是给形参一个默认值:float  findnumbera = 3.6;

对于我在重载函数所给出的例子中,用带参函数也可以实现功能;

int max(int a,int b,int c = 0);

在比较两个数的时候,第三个数默认为0;

 

4、函数的嵌套调用:

C++中不允许作嵌套定义,不能完整的包含另一个函数

但是能够嵌套调用很熟,(再调用一个函数的同时,又可以调用另一个函数)

注意:调用之前必须对没一个函数作声明;

 

5、函数的递归调用:

  在调用函数的过程中又直接或间接的调用函数本身,

   献上一个例子:用递归法求阶乘

 #include <iostream>
using namespace std;
long fun (int);
int main (int argc, const char * argv[])
{
    int m = 0;
    cout<<"please enter a number"<<endl;
    cin>>m;
    cout<<fun(m)<<endl; 
    return 0;

}
long fun(int n)
{
    long c;
    if(n==1)c =1;
    else
        c = fun(n-1)*n;
    
    return c;
    
}


 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值