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

开发 后端
在C++中进行C++ 函数重载时,在下文将举一个在参数个数上不相同的重载函数的例子来充分说明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编程中经常要用到的。

【编辑推荐】

  1. 简介学习C++总结之谈
  2. C++函数进行学习探索总结笔记
  3. C++类库设计的基本构思与方法
  4. C++语言真的还有市场价值?
  5. C++类库设计的基本构思与方法
责任编辑:chenqingxiang 来源: NET130
相关推荐

2010-01-18 16:56:30

C++函数

2010-01-15 17:18:57

C++源程序

2010-01-25 14:43:00

C++构造函数

2010-01-13 11:10:17

C++库函数

2010-02-05 15:59:26

C++函数重载

2010-01-20 18:06:06

C++虚基类

2010-01-28 14:04:35

C++链表

2010-01-13 18:47:53

C++教程

2010-01-11 15:21:18

C++语言

2011-07-20 17:16:50

C++重载函数

2010-02-04 09:26:23

C++模板函数重载

2010-02-05 17:16:05

C++构造函数

2010-01-28 10:33:10

C++开发程序

2010-01-22 11:13:16

C++静态

2009-05-26 09:31:00

C++重载覆盖

2016-12-26 09:23:18

C++函数覆盖

2010-01-28 13:35:41

调用C++函数

2010-01-11 11:16:37

C++编程

2010-01-11 15:36:08

C++代码

2009-07-31 16:00:30

C#函数重载
点赞
收藏

51CTO技术栈公众号