最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++函數(shù)重載的定義與原因詳解

 更新時(shí)間:2022年03月07日 16:13:07   作者:New?Youg  
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)學(xué)生成績管理系統(tǒng),使用數(shù)據(jù)庫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

引例

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

雖然在C語言中我們可以通過 print_i 和print_s來實(shí)現(xiàn)功能。

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

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;
}

函數(shù)重載的定義

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

函數(shù)重載規(guī)則

函數(shù)重載的條件:參數(shù)個(gè)數(shù) 或 類型 或 順序必須不同,函數(shù)名不看

image-20220305195013276

為什么C不支持函數(shù)重載而C++可以

要想達(dá)到函數(shù)重載必然解決:函數(shù)命名問題 —編譯器只需要將用戶定義的各種標(biāo)識符,再加載內(nèi)存中,對其進(jìn)行修飾即----內(nèi)部名稱

因?yàn)槿绻唤鉀Q函數(shù)命名問題,在編譯時(shí),就無法形成符號表,同時(shí)在鏈接階段時(shí),匯總符號表也成問題,畢竟符號表決定了,程序到達(dá)調(diào)用哪個(gè)函數(shù)。

image-20220305203830636

內(nèi)部名稱

  • 內(nèi)部名稱:C和C++的語言實(shí)現(xiàn)都會(huì)按照特定規(guī)則,將定義的標(biāo)識符(各種變量名,函數(shù)名,類型,命名空間等)轉(zhuǎn)換為對應(yīng)的內(nèi)部名稱.通過內(nèi)部名稱編譯器就可以識別各種標(biāo)識符.
  • 對于C,僅在標(biāo)識符加上前綴‘``_`’即swap()》》_swap()
  • 如果從唯一識別函數(shù)作用來看,這種規(guī)則沒有任何用:畢竟除了static和命名空間域里面的函數(shù),函數(shù)都具有外聯(lián)性,一但在不同文件出現(xiàn)同名函數(shù),程序就CREASH。
  • 對于C++,不同編譯器下是不同的:

LINUX:

image-20220305195644165

window:

image-20220305195840804

正是通過這種內(nèi)部命名規(guī)則,函數(shù)重載成為可能。

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!     

相關(guān)文章

  • C++11運(yùn)算符重載和向量類重載實(shí)例詳解(<<,>>,+,-,*等)

    C++11運(yùn)算符重載和向量類重載實(shí)例詳解(<<,>>,+,-,*等)

    這篇文章主要給大家介紹了關(guān)于C++11運(yùn)算符重載和向量類重載的相關(guān)資料,主要包括<<,>>,+,-,*等,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-07-07
  • C語言練習(xí)題:求1到10的階乘之和簡單實(shí)例

    C語言練習(xí)題:求1到10的階乘之和簡單實(shí)例

    下面小編就為大家?guī)硪黄狢語言練習(xí)題:求1到10的階乘之和簡單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-05-05
  • 使用C語言實(shí)現(xiàn)從avi視頻中提取圖片

    使用C語言實(shí)現(xiàn)從avi視頻中提取圖片

    這篇文章主要為大家詳細(xì)介紹了如何使用C語言實(shí)現(xiàn)從avi視頻中提取圖片,文中的示例代碼簡潔易懂,具有一定的借鑒價(jià)值,有需要的小伙伴可以參考下
    2023-10-10
  • 詳解C++中StringBuilder類的實(shí)現(xiàn)及其性能優(yōu)化

    詳解C++中StringBuilder類的實(shí)現(xiàn)及其性能優(yōu)化

    在Java和C#中,StringBuilder可以創(chuàng)造可變字符序列來動(dòng)態(tài)地?cái)U(kuò)充字符串,那么在C++中我們同樣也可以實(shí)現(xiàn)一個(gè)StringBuilder并且用來提升性能,下面就來詳解C++中StringBuilder類的實(shí)現(xiàn)及其性能優(yōu)化
    2016-05-05
  • 關(guān)閉顯示器軟件代碼分享

    關(guān)閉顯示器軟件代碼分享

    這篇文章主要介紹了使用程序如何關(guān)閉顯示器的代碼,需要的朋友可以參考下
    2014-01-01
  • C語言實(shí)現(xiàn)鏈隊(duì)列

    C語言實(shí)現(xiàn)鏈隊(duì)列

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)鏈隊(duì)列,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • C++11中union的使用方法示例

    C++11中union的使用方法示例

    這篇文章主要給大家介紹了關(guān)于C++11中union的使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • C語言二叉樹層序遍歷

    C語言二叉樹層序遍歷

    這篇文章主要介紹了C語言二叉樹層序遍歷,文章基于C語言的相關(guān)資料展開詳細(xì)的文章內(nèi)容,具有一定的參考價(jià)值,需要的小伙伴可以參考一下,希望對你的學(xué)習(xí)有所幫助
    2022-04-04
  • c++ 函數(shù)指針相關(guān)總結(jié)

    c++ 函數(shù)指針相關(guān)總結(jié)

    這篇文章主要介紹了c++ 函數(shù)指針的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用c++,感興趣的朋友可以了解下
    2021-02-02
  • C++ 函數(shù)指針的實(shí)現(xiàn)

    C++ 函數(shù)指針的實(shí)現(xiàn)

    本文主要介紹了C++ 函數(shù)指針的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02

最新評論

利川市| 深圳市| 石家庄市| 台山市| 泰来县| 江津市| 衢州市| 宁晋县| 阆中市| 星座| 焦作市| 盐边县| 高雄市| 柳江县| 南平市| 余江县| 桂阳县| 乐亭县| 麦盖提县| 元阳县| 康乐县| 文安县| 壤塘县| 建瓯市| 怀安县| 屯昌县| 汶川县| 英吉沙县| 日土县| 胶南市| 拉孜县| 临洮县| 乌拉特后旗| 南雄市| 剑河县| 抚州市| 洛扎县| 太康县| 太谷县| 平度市| 唐河县|