漫谈C++函数重载

开发 后端
C++里的函数的最大功能就是求和,即求两个操作数的和,一个函数实现是求两个int型数之和,好吧下面就进行对C++函数的学习。

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

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

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

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

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

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

  1. #include <iostream.h> 
  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<<min(13, 5, 4, 9)<<endl;  
  9.       cout<<min(-2, 8, 0)<<endl;  
  10.   }  
  11.  
  12.   int min(int a, int b)  
  13.   {  
  14.       return a<b?a:b;  
  15.   }  
  16.  
  17.   int min(int a, int b, int c)  
  18.   {  
  19.       int t = min(a, b);  
  20.       return min(t,c);  
  21.   }  
  22.  
  23.   int min(int a, int b, int c, int d)  
  24.   {  
  25.       int t1 = min(a, b);  
  26.       int t2 = min(c, d);  
  27.       return min(t1, t2);  
  28.   } 

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

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

【编辑推荐】

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

2010-01-20 17:48:07

C++ 函数重载

2010-02-05 15:59:26

C++函数重载

2010-02-04 09:26:23

C++模板函数重载

2010-01-14 14:40:21

C++代码

2010-01-11 15:21:18

C++语言

2011-07-20 17:16:50

C++重载函数

2016-12-26 09:23:18

C++函数覆盖

2009-05-26 09:31:00

C++重载覆盖

2009-07-31 16:00:30

C#函数重载

2010-01-18 18:04:28

静态成员

2024-01-23 10:48:44

C++函数重载开发

2010-02-04 09:33:08

C++指针重载

2020-06-17 12:22:44

C覆盖重载

2010-01-21 10:14:36

C++编译

2024-04-15 12:54:40

2010-01-12 15:13:37

Visual C++环

2009-09-01 11:28:32

C#使用函数重载

2010-01-12 10:50:59

学习C++

2010-01-11 10:28:51

C++编程

2011-07-15 01:34:36

C++重载运算符
点赞
收藏

51CTO技术栈公众号