详解C++中的内联函数和函数重载

2020-01-06 13:49:36王振洲

运行情况如下:

 

 
  1. 185-76567↙ (输入3个整数)  56.87 90.23 -3214.78↙ (输入3个实数) 
  2. 67854 -912456 673456↙ (输入3个长整数)  i_max=567 (输出3个整数的最大值) 
  3. d_max=90.23 (输出3个双精度数的最大值)  g_max=673456 (输出3个长整数的最大值) 

上例3个max函数的函数体是相同的。

其实重载函数并不要求函数体相同;除了允许参数类型不同以外,还允许参数的个数不同。

【例】编写一个程序,用来求两个整数或3个整数中的最大数。如果输入两个整数,程序就输出这两个整数中的最大数,如果输入3个整数,程序就输出这3个整数中的最大数。

 

 
  1. #include <iostream>  using namespace std; 
  2. int main( )  { 
  3. int max(int a,int b,int c); //函数声明  int max(int a,int b); //函数声明 
  4. int a=8,b=-12,c=27;  cout<<"max(a,b,c)="<<max(a,b,c)<<endl;//输出3个整数中的最大者 
  5. cout<<"max(a,b)="<<max(a,b)<<endl; //输出两个整数中的最大者  } 
  6. int max(int a,int b,int c)//此max函数的作用是求3个整数中的最大者  { 
  7. if(b>a) a=b;  if(c>a) a=c; 
  8. return a;  } 
  9. int max(int a,int b)//此max函数的作用是求两个整数中的最大者  { 
  10. if(a>b) return a;  else return b;