漫谈C++函数重载

toontong 2010-01-18

C++函数是C++ 语言程序的主要组成部分,一个函数可以调用其他函数。在设计良好的程序中,每个函数都有特定的目的,下文着重介绍C++函数如何解决继承、重载的问题,保证其容真实反应实际的函数。

另一个实现是求两个浮点型数之和,再一个实现是求两个复数的和。每种实现对应着一个函数体,这些函数的名字相同,但是函数的参数的类型不同。这就是函数重载的概念。C++函数重载在类和对象的应用尤其重要。

函数重载要求编译器能够唯一地确定调用一个函数时应执行哪个函数代码,即采用哪个函数实现。确定函数实现时,要求从函数参数的个数和类型上来区分。这就是说,进行函数重载时,要求同名函数在参数个数上不同,或者参数类型上不同。否则,将无法实现重载。

参数类型上不同的重载函数下面举一个在参数类型不同的重载函数的例子:

#include <iostream.h> 


   int add(int, int);  


   double add(double, double);  


 


   void main()  


   {  



       cout<<add(5, 10)<<endl;  




       cout<<add(5.0, 10.5)endl;  



   }  


 


   int add(int x, int y)  


   {  


       return x+y;  


   }  


 


   double add(double a, double b)  


   {  


       return a+b;  


   } 

该程序中,C++函数中调用相同名字add的两个函数,前边一个add()函数对应的是两个int型数求和的函数实现,而后边一个add()函数对应的是两个double型数求和的函数实现。这便是函数的重载。下面举一个在参数个数上不相同的重载函数的例子:

#include <iostream.h> 


  int min(int a, int b);  


  int min(int a, int b, int c);  


  int min(int a, int b, int c, int d);  


 


  void main()  


  {  



      cout<<min(13, 5, 4, 9)<<endl;  




      cout<<min(-2, 8, 0)<<endl;  



  }  


 


  int min(int a, int b)  


  {  



      return a<b?a:b;  



  }  


 


  int min(int a, int b, int c)  


  {  



      int t = min(a, b);  



      return min(t,c);  


  }  


 


  int min(int a, int b, int c, int d)  


  {  



      int t1 = min(a, b);  




      int t2 = min(c, d);  



      return min(t1, t2);  


  } 

相关推荐

ganyouxianjava / 0评论 2012-05-31