运行情况如下:
- 185-76567↙ (输入3个整数) 56.87 90.23 -3214.78↙ (输入3个实数)
- 67854 -912456 673456↙ (输入3个长整数) i_max=567 (输出3个整数的最大值)
- d_max=90.23 (输出3个双精度数的最大值) g_max=673456 (输出3个长整数的最大值)
上例3个max函数的函数体是相同的。
其实重载函数并不要求函数体相同;除了允许参数类型不同以外,还允许参数的个数不同。
【例】编写一个程序,用来求两个整数或3个整数中的最大数。如果输入两个整数,程序就输出这两个整数中的最大数,如果输入3个整数,程序就输出这3个整数中的最大数。
- #include <iostream> using namespace std;
- int main( ) {
- int max(int a,int b,int c); //函数声明 int max(int a,int b); //函数声明
- int a=8,b=-12,c=27; cout<<"max(a,b,c)="<<max(a,b,c)<<endl;//输出3个整数中的最大者
- cout<<"max(a,b)="<<max(a,b)<<endl; //输出两个整数中的最大者 }
- int max(int a,int b,int c)//此max函数的作用是求3个整数中的最大者 {
- if(b>a) a=b; if(c>a) a=c;
- return a; }
- int max(int a,int b)//此max函数的作用是求两个整数中的最大者 {
- if(a>b) return a; else return b;










