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

C++ 几种函数的解析

2012-04-05 21:34 211 查看
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 findnumber(a = 3.6);

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

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

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

4、函数的嵌套调用:

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

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

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

5、函数的递归调用:

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

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

3、有默认参数的函数:

很简单的就是给形参一个默认值:float findnumber(a = 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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: