C++入門教程(14):重載函數

小古銀的官方網站(完整教程):http://www.xiaoguyin.com/
C++入門教程視頻:https://www.bilibili.com/video/av20868986/


在前面代碼中,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會顯示出來調用的是哪個函數。

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 前言 人生苦多,快來 Kotlin ,快速學習Kotlin! 什么是Kotlin? Kotlin 是種靜態(tài)類型編程...
    任半生囂狂閱讀 26,686評論 9 118
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young閱讀 4,187評論 1 10
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy閱讀 9,661評論 1 51
  • 重新系統(tǒng)學習下C++;但是還是少了好多知識點;socket;unix;stl;boost等; C++ 教程 | 菜...
    kakukeme閱讀 20,419評論 0 50
  • ACG是華語圈ACG次文化中的一個慣用簡稱。 1 起源發(fā)展 1995年,臺灣的動漫愛好者AIplus在國立中...
    Natsu閱讀 1,968評論 0 25

友情鏈接更多精彩內容