91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

    栾城县| 三原县| 唐山市| 昌乐县| 米林县| 韶山市| 乌兰察布市| 万山特区| 长春市| 昌江| 常宁市| 红桥区| 高陵县| 平遥县| 武宣县| 子长县| 哈巴河县| 沭阳县| 那坡县| 增城市| 新兴县| 嘉荫县| 永顺县| 崇义县| 福泉市| 盐源县| 利川市| 永定县| 深水埗区| 温泉县| 红原县| 鹤峰县| 沅陵县| 连城县| 克拉玛依市| 庆阳市| 阳泉市| 龙南县| 三江| 云林县| 林州市|