函数重载的使用

Posted bjfybjn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数重载的使用相关的知识,希望对你有一定的参考价值。

函数的重载

1:什么叫函数的重载?

函数的重载指的是两个以上的函数,具有相同的函数名,但是形参的个数或者类型不同,编译器根据实参和形参的类型及个数的最佳匹配,自动确定调用哪一个函数,这就是函数的重载。

2:函数的重载有什么用呢?

我们都知道在平时的语言表达中一个动作可以用来表示很多件不同的事情,比如比如一个擦子,可以说擦桌子,擦鞋子等等动作,那么在c++中有没有与之相类似的功能呢,其实是有的,它就是函数的重载,而这其中的函数就代表了刚才例子中的擦,它可以对不同的数据类型进行处理,这就使我们在编程使可以对不同的功能赋予相同的函数名,编译时计算机会根据实参的2类型与个数来自动匹配具体的功能。

3:函数重载的实现

例如下面这个例子

#include<iostream>
using namespace std;
int abc(int a, int b)
{
    int sum;
    sum = a + b;
    return sum;
}
float abc(float a, float b)
{
    float sum;
    sum = a + b;
    return sum;
}

在这里我们定义了两个取合的函数,但是仔细看会发现两个函数拥有相同的函数名,只不过函数对不同类型的变量在起作用,第一个函数是对整形数值进行求和,第二个则是对浮点数进行求和,这其实就是函数重载的定义那么我们接着看完整的代码

#include<iostream>
using namespace std;
int abc(int a, int b)
{
    int sum;
    sum = a + b;
    return sum;
}
float abc(float a, float b)
{
    float sum;
    sum = a + b;
    return sum;
}
void main()
{
    int a, b;
    float c, d;
    double sum1,sum2;
    cout << "请输入abcd的值" << endl;
    cin >> a  >> b  >> c  >> d;
    sum1 = abc(a, b);
    sum2 = abc(c , d);
    cout <<"a和b的合为"<< sum1 << endl<<"c和d的合为" << sum2 << endl;
}

如图所示,我分别定义了四个整形与浮点数的值并且在调用函数是并没与对其声明,而是直接调用了同一个函数名的函数,那么我们看结果

技术图片

可以看到我们虽然调用函数时是使用的相同函数名但是结果上计算机却自己对数据类型进行了判断并且找出来重载函数中最匹配的函数来进行计算,这就是函数的重载

4使用函数重载可以避免什么样的问题

那么函数的重载可以解决什么问题呢,函数重载因为系统的自动匹配功能所以可以解决多种数据类型的计算,可以用于解决预设函数太多,调用时较为麻烦,不好调用等问题。

以上是关于函数重载的使用的主要内容,如果未能解决你的问题,请参考以下文章

Java基础之方法的调用重载以及简单的递归

导航架构片段重载问题

导航架构片段重载问题

对Java方法方法重载的理解

Java 基础语法方法的使用

java基础3-重载+命令行传参+递归+数组+排序