C++ 几种函数的解析
2012-04-05 21:34
211 查看
1、重载:同名不同参(参数的个数和类型不同)
区别于重写:重写是同样的函数定义,重写修改实现代码
重载:
**********************************
2、函数模版:
建立一个通用函数,函数类型和形参类型不具体指定,用一个虚拟的类型代表
通用函数定义: typename <typename T >
temlate <typename T>//模版声明
Tmax(T a,T b,T c) //定义一个通用函数,用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; 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; }
相关文章推荐
- C++函数编译的几种方式解析
- C++静态成员函数访问非静态成员的几种方法
- C++中类的静态数据成员函数解析
- cocos2d-x中函数回调 事件监听机制详细解析 涉及c++成员函数指针
- C++使用static的错误:无法解析的外部符号、“static”不应在文件范围内定义的成员函数上使用
- C/C++ sizeof函数解析——解决sizeof求结构体大小的问题
- C++定义比较函数的几种方法
- 解析C++汇编代码(了解函数在堆栈中的工作流程)-局部变量空间分配及程序栈操作
- C/C++ sizeof函数解析——解决sizeof求结构体大小的问题
- c++中CreateEvent函数解析(1)
- 总结一下C/C++程序中几种常用的计时函数
- C++和C#中的回调函数解析
- c++虚函数深度解析
- 总结C++中取成员函数地址的几种方法
- C++中使用pthread.h头文件报错 - 无法解析的外部符号 __imp__pthread_create,该符号在函数 _main 中被引用
- C/C++ sizeof函数解析——解决sizeof求结构体大小的问题
- C++ ODBC 函数报无法解析的外部函数错误的解决方法
- C++中虚函数解析
- C++函数参数为数组时的解析
- C++指向函数的指针实例解析