亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++中函數重載定義與原因是什么

發布時間:2022-03-07 11:53:16 來源:億速云 閱讀:148 作者:小新 欄目:開發技術

小編給大家分享一下C++中函數重載定義與原因是什么,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

    引例

    如果要求你只能通過print函數,即能打印字符串,又能打印一個整型。

    雖然在C語言中我們可以通過 print_i 和print_s來實現功能。

    但是C++更方便。C++支持同一函數名,完成類似的功能的語法。

    void print(int i)
    {
        cout << "print a integer :" << i << endl;
    }
    
    void print(string str)
    {
        cout << "print a string :" << str << endl;
    }
    
    int main()
    {
        print(12);
        print("hello world!");
        return 0;
    }

    函數重載的定義

    函數重載是指在同一作用域內(可以淺顯理解為同一文件內,畢竟函數具有外聯系),可以有一組具有相同函數名,不同參數列表的函數,這組函數被稱為重載函數。重載函數通常用來命名一組功能相似的函數,這樣做減少了函數名的數量,避免了名字空間的污染,對于程序的可讀性有很大的好處.

    函數重載規則

    函數重載的條件:參數個數 或 類型 或 順序必須不同,函數名不看

    C++中函數重載定義與原因是什么

    為什么C不支持函數重載而C++可以

    要想達到函數重載必然解決:函數命名問題 &mdash;編譯器只需要將用戶定義的各種標識符,再加載內存中,對其進行修飾即----內部名稱

    因為如果不解決函數命名問題,在編譯時,就無法形成符號表,同時在鏈接階段時,匯總符號表也成問題,畢竟符號表決定了,程序到達調用哪個函數。

    C++中函數重載定義與原因是什么

    內部名稱

    • 內部名稱:C和C++的語言實現都會按照特定規則,將定義的標識符(各種變量名,函數名,類型,命名空間等)轉換為對應的內部名稱.通過內部名稱編譯器就可以識別各種標識符.

    • 對于C,僅在標識符加上前綴&lsquo;``_`&rsquo;即swap()》》_swap()

    • 如果從唯一識別函數作用來看,這種規則沒有任何用:畢竟除了static和命名空間域里面的函數,函數都具有外聯性,一但在不同文件出現同名函數,程序就CREASH。

    • 對于C++,不同編譯器下是不同的:

    LINUX:

    C++中函數重載定義與原因是什么

    window:

    C++中函數重載定義與原因是什么

    正是通過這種內部命名規則,函數重載成為可能。

    看完了這篇文章,相信你對“C++中函數重載定義與原因是什么”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    c++
    AI

    潼关县| 普格县| 当雄县| 陵水| 华容县| 彭泽县| 盐源县| 梅州市| 古浪县| 巫溪县| 永泰县| 塘沽区| 黑山县| 昆明市| 门头沟区| 扎赉特旗| 汝州市| 竹溪县| 大足县| 女性| 阿合奇县| 克拉玛依市| 长沙县| 河南省| 正安县| 铜鼓县| 班戈县| 天津市| 桐城市| 永康市| 广河县| 汕尾市| 六安市| 达日县| 苍山县| 平谷区| 河南省| 敦煌市| 左云县| 上饶县| 聂荣县|