C++入门教程(14):重载函数

发布时间:2019-06-28 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了C++入门教程(14):重载函数脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

小古银的官方网站(完整教程):http://www.xiaoguyin.com/
C++入门教程视频:https://www.bilibili.com/vide...


在前面代码中,int myabs(int num);,可以看到参数是int,返回值也是int,那么,当传入浮点型或者整型时,就会像上面说的参数赋值的步骤进行。换句话说,如果传入其他int保存不了的参数时,那么它就不举了。这种情况就需要新的函数用来处理其它类型,由于其它新函数也是用来求绝对值的,所以也用myabs作为函数名称,就是为了让函数名称更清晰方便地表达出它的意思,而参数改成各种的类型。

上面所说的,如果一堆函数是同一个名字但有不同的形式参数,那么这堆函数就是重载函数

注意:重载函数只跟函数形式参数的数量还有数据类型有关,跟参数名没有关系,跟返回值也没有关系。

基础示例

以下给出完整栗子:

#include <iostream>

int myabs(int num);
float myabs(float num);
double myabs(double num);
long long myabs(long long num);

int main(void)
{
    std::cout << myabs(-1024) << std::endl;
    std::cout << myabs(10.24) << std::endl;
    std::cout << myabs(-2.1456) << std::endl;
    return 0;
}

int myabs(int num)
{
    if (num < 0)
    {
        return -num;
    }
    else
    {
        return num;
    }
}

float myabs(float num)
{
    if (num < 0)
    {
        return -num;
    }
    else
    {
        return num;
    }
}

double myabs(double num)
{
    if (num < 0)
    {
        return -num;
    }
    else
    {
        return num;
    }
}

long long myabs(long long num)
{
    if (num < 0)
    {
        return -num;
    }
    else
    {
        return num;
    }
}

输出结果:

1024
10.24
2.1456

上面写的也只是一部分,如果想要所有类型都适用,就要都写一遍,ヽ(✿゚▽゚)ノ惊不惊喜,意不意外。不过还是有方法不用写这么多的,就是这个教程很后面教的——模板

基础讲解

当你编译的时候,编译器会分析出你给函数提供了什么类型的参数,然后根据这个数据类型去找符合这个类型的函数,然后就用这个函数调用你指定的参数。如果编译器找不到对应的函数,就尝试找最接近的类型,然后(隐式)转换一下参数变成这个接近的类型,如果也都没有就会编译报错。

温馨提示:一般IDE还是非常智能的,当你用鼠标指着你调用的函数时,IDE会显示出来调用的是哪个函数。

脚本宝典总结

以上是脚本宝典为你收集整理的C++入门教程(14):重载函数全部内容,希望文章能够帮你解决C++入门教程(14):重载函数所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。