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

C++ 函數(shù)重載詳情介紹

 更新時(shí)間:2021年11月19日 09:10:23   作者:梁唐  
這篇文章主要介紹了C++ 函數(shù)重載詳情,函數(shù)重載還有一個(gè)別名叫函數(shù)多態(tài),函數(shù)多態(tài)是C++在C語言基礎(chǔ)上的新特性,它可以讓我們使用多個(gè)同名函數(shù),下面來看看文章具體內(nèi)容的介紹

文章轉(zhuǎn)自微信公眾號:Coder梁(ID:Coder_LT)

函數(shù)重載

函數(shù)重載還有一個(gè)別名叫函數(shù)多態(tài),其實(shí)我個(gè)人感覺函數(shù)多態(tài)這個(gè)名字更好理解更恰當(dāng)一些。

函數(shù)多態(tài)是C++在C語言基礎(chǔ)上的新特性,它可以讓我們使用多個(gè)同名函數(shù)。當(dāng)然這些同名函數(shù)的參數(shù)是要有區(qū)別的,我們在函數(shù)調(diào)用的時(shí)候,編譯器會(huì)自動(dòng)根據(jù)我們傳入的參數(shù),從多個(gè)同名函數(shù)當(dāng)中找到我們調(diào)用的那一個(gè)。和面向?qū)ο罄锏亩鄳B(tài)的概念很接近。

我們在定義函數(shù)的時(shí)候,編譯器只會(huì)查看參數(shù)的數(shù)目和類型,而不會(huì)理會(huì)參數(shù)的名稱。只要參數(shù)的數(shù)量以及類型不完全相同,就會(huì)被認(rèn)為是不同的函數(shù)。

比如:

void print(const char *str, int width);
void print(double d, int width);
void print(long l, int width);
void print(int i, int width);
void print(const char *str);


上面列舉的5個(gè)函數(shù)它們彼此之間的函數(shù)參數(shù)的數(shù)量和類型都不完全相同,因此會(huì)被視為是不同的函數(shù)。我們在使用的時(shí)候編譯器會(huì)根據(jù)我們傳入的參數(shù)使用對應(yīng)的函數(shù)。

print('pancakes', 15); // use 1
print('pancakes');  // use 5
print(1999.0, 10);  // use 2
print(199, 23);   // use 4
print(199L, 15);  // use 3


這當(dāng)然沒有問題,如果我們這樣使用呢:

unsigned year = 2021;
print(year, 6);


我們可以發(fā)現(xiàn)我們這里傳入的參數(shù)類型是unsigned int,它不和任何函數(shù)的入?yún)㈩愋推ヅ?。這個(gè)時(shí)候編譯器并不會(huì)放棄,而是會(huì)嘗試使用標(biāo)準(zhǔn)類型轉(zhuǎn)換強(qiáng)制進(jìn)行匹配。但問題來了,我們有三個(gè)版本的函數(shù)的第一個(gè)入?yún)⑹菙?shù)字類型,于是就有了三種變量轉(zhuǎn)換的方式。這個(gè)時(shí)候C++將拒絕這種函數(shù)調(diào)用,進(jìn)行報(bào)錯(cuò)。

同樣,一些看起來彼此不同的參數(shù)也是不能共存的,比如:

double cube(double x);
double cube(double &x);


看起來一個(gè)是值傳遞一個(gè)是引用傳遞,但是對于編譯器來說,顯然它是無法分辨我們究竟要調(diào)用哪一個(gè)的。

還有一點(diǎn)需要注意,就是const修飾符。

void dribble(char *bits);   //1
void dribble(const char *bits); //2


dribble函數(shù)有兩個(gè)類型,一個(gè)用于const指針,一個(gè)用于常規(guī)指針,編譯器將會(huì)根據(jù)實(shí)參是否為const來決定使用哪個(gè)函數(shù)。因?yàn)閷⒎?code>const值賦給const變量是合法的,但反之是非法的。

另外,編譯器區(qū)分函數(shù)是根據(jù)函數(shù)的參數(shù)數(shù)量和類型并不是根據(jù)函數(shù)的返回值。所以下面的兩個(gè)聲明是有問題的:

long gronk(int n, float m);
double gronk(int n, float m);


因?yàn)樗鼈兊膮?shù)數(shù)量以及類型都是一樣的,盡管返回類型不同,但編譯器依然無法區(qū)分。

這個(gè)問題經(jīng)常在面試當(dāng)中出現(xiàn),面試官會(huì)故意挖坑問你,函數(shù)重載的依據(jù)是什么。如果兩個(gè)函數(shù)的返回類型不同,但是參數(shù)一樣,能不能重載。很多同學(xué)對重載的概念記憶不是非常深刻,面試的時(shí)候腦子一熱就中招了,所以一定要注意。

到此這篇關(guān)于C++ 函數(shù)重載詳情介紹的文章就介紹到這了,更多相關(guān)C++ 函數(shù)重載內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Qt實(shí)現(xiàn)計(jì)算器功能

    Qt實(shí)現(xiàn)計(jì)算器功能

    這篇文章主要為大家詳細(xì)介紹了Qt實(shí)現(xiàn)計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • QT已有項(xiàng)目導(dǎo)入工程時(shí)注意事項(xiàng)圖文詳解

    QT已有項(xiàng)目導(dǎo)入工程時(shí)注意事項(xiàng)圖文詳解

    QT開發(fā)這幾年大大小小項(xiàng)目做了不少,花了點(diǎn)時(shí)間對知識點(diǎn)總結(jié)整合了一部分,下面這篇文章主要給大家介紹了關(guān)于QT已有項(xiàng)目導(dǎo)入工程時(shí)注意事項(xiàng)的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • C++多重繼承二義性原理實(shí)例解析

    C++多重繼承二義性原理實(shí)例解析

    這篇文章主要介紹了C++多重繼承二義性原理實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • C/C++ break和continue區(qū)別及使用方法

    C/C++ break和continue區(qū)別及使用方法

    這篇文章主要介紹了C/C++ break和continue區(qū)別及使用方法的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • Qt結(jié)合libqrencode生成二維碼的實(shí)現(xiàn)示例

    Qt結(jié)合libqrencode生成二維碼的實(shí)現(xiàn)示例

    本文主要介紹了Qt結(jié)合libqrencode生成二維碼的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 淺談C++中virtual的三種用法

    淺談C++中virtual的三種用法

    這篇文章主要介紹了淺談C++中virtual的三種用法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • C語言匯編分析傳遞結(jié)構(gòu)體指針比傳遞結(jié)構(gòu)體變量高效的深層原因

    C語言匯編分析傳遞結(jié)構(gòu)體指針比傳遞結(jié)構(gòu)體變量高效的深層原因

    本文章使用的工具是vs2010,本篇文章主要講解結(jié)構(gòu)體指針作為參數(shù)傳遞與結(jié)構(gòu)體變量作為參數(shù)傳遞的對比,不談值傳遞與址傳遞的概念
    2022-10-10
  • C++11 寫一個(gè)只觸發(fā)一次槽函數(shù)的Qt connect函數(shù)

    C++11 寫一個(gè)只觸發(fā)一次槽函數(shù)的Qt connect函數(shù)

    這篇文章主要為大家介紹了C++11 寫一個(gè)只觸發(fā)一次槽函數(shù)的Qt connect函數(shù)實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • C++?STL容器適配器使用指南

    C++?STL容器適配器使用指南

    C++?STL(標(biāo)準(zhǔn)模板庫)是一套功能強(qiáng)大的?C++?模板類,提供了通用的模板類和函數(shù),這些模板類和函數(shù)可以實(shí)現(xiàn)多種流行和常用的算法和數(shù)據(jù)結(jié)構(gòu),如向量、鏈表、隊(duì)列、棧,今天我們來探究一下stl容器適配器的使用吧
    2021-11-11
  • static關(guān)鍵字的作用詳解

    static關(guān)鍵字的作用詳解

    在C語言中,static的字面意思很容易把我們導(dǎo)入歧途,其實(shí)它的作用有三條。
    2013-04-04

最新評論

江门市| 营口市| 河曲县| 沙洋县| 英吉沙县| 乐山市| 台中县| 楚雄市| 咸阳市| 石首市| 武穴市| 平定县| 法库县| 许昌市| 石家庄市| 固阳县| 铜川市| 吴桥县| 岗巴县| 廊坊市| 阿鲁科尔沁旗| 安多县| 乌鲁木齐市| 阳春市| 五寨县| 辽中县| 永清县| 拉孜县| 伊金霍洛旗| 庐江县| 洞头县| 额敏县| 罗平县| 嘉鱼县| 淳化县| 灌阳县| 万年县| 崇义县| 萍乡市| 海兴县| 墨玉县|