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

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

由于在定义函数时指定它为内置函数,因此编译系统在遇到函数调用“max(i, j, k)”时,就用max函数体的代码代替“max(i,j, k)”,同时将实参代替形参。这样,程序第6行 “m=max(i, j, k);”就被置换成:

 

 
  1. if (j>i) i=j;  if(k>i) i=k; 
  2. m=i; 

函数重载

在编程时,有时我们要实现的是同一类的功能,只是有些细节不同。例如希望从3个数中找出其中的最大者,而每次求最大数时数据的类型不同,可能是3个整数、3个双精度数或3个长整数。程序设计者往往会分别设计出3个不同名的函数,其函数原型为:

 

 
  1. int max1(int a, int b, int c); //求3个整数中的最大者  double max2(double a, double b, double c); //求3个双精度数中最大者 
  2. long max3(long a, long b, long c); //求3个长整数中的最大者