龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

如何对C++进行函数重载

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
下面对 C++ 函数重载 进行学习探讨, C++ 函数重载 : 是指同一个 函数 名可以对应着多个 函数 的实现,如果要对编译器进行函数重载时话,那么就要使用extern "C"来说明。 另一个实现是

下面对C++ 函数重载进行学习探讨,C++ 函数重载是指同一个函数名可以对应着多个函数的实现,如果要对编译器进行函数重载时话,那么就要使用extern "C"来说明。

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

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

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

  1. #include  
  2. int add(int, int);  
  3. double add(double, double);  
  4.  
  5. void main()  
  6. {  
  7. cout< cout< }  
  8.  
  9. int add(int x, int y)  
  10. {  
  11. return x+y;  
  12. }  
  13.  
  14. double add(double a, double b)  
  15. {  
  16. return a+b;  

该程序中,main()函数中调用相同名字add的两个函数,前边一个add()函数对应的是两个int型数求和的函数实现,而后边一个add()函数对应的是两个double型数求和的函数实现。这便是函数的重载。

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

  1. #include  
  2. int min(int a, int b);  
  3. int min(int a, int b, int c);  
  4. int min(int a, int b, int c, int d);  
  5.  
  6. void main()  
  7. {  
  8. cout< cout< }  
  9.  
  10. int min(int a, int b)  
  11. {  
  12. return a }  
  13.  
  14. int min(int a, int b, int c)  
  15. {  
  16. int t = min(a, b);  
  17. return min(t,c);  
  18. }  
  19.  
  20. int min(int a, int b, int c, int d)  
  21. {  
  22. int t1 = min(a, b);  
  23. int t2 = min(c, d);  
  24. return min(t1, t2);  

该程序中出现了C++ 函数重载函数名min对应有三个不同的实现,函数的区分依据参数个数不同,这里的三个函数实现中,参数个数分别为2,3和4,在调用函数时根据实参的个数来选取不同的函数实现。

C++ 函数重载在类和对象应用比较多,尤其是在类的多态性中。在以后我们将碰到更多的在类型不同的函数重载,尤其是在结合类的继承性和指针类型的不同,而这些都是我们以后用VC编程中经常要用到的。

精彩图集

赞助商链接