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

C++函數(shù)的默認(rèn)參數(shù)詳情

 更新時(shí)間:2021年11月19日 08:51:14   作者:梁唐  
這篇文章主要介紹了C++函數(shù)的默認(rèn)參數(shù)得相關(guān)資料,C++中的默認(rèn)參數(shù)的用法和Python基本一致。使用默認(rèn)參數(shù)的方法非常簡單,也就是我們在函數(shù)聲明的時(shí)候,就為某些參數(shù)指定好默認(rèn)值,當(dāng)我們調(diào)用函數(shù)的時(shí)候,如果沒有傳入對應(yīng)的參數(shù),那么則使用默認(rèn)值,下面來看文章具體內(nèi)容吧

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

C++當(dāng)中的支持默認(rèn)參數(shù),如果你學(xué)過Python,那么想必對此不會陌生。C++中的默認(rèn)參數(shù)的用法和Python基本一致。

使用默認(rèn)參數(shù)的方法非常簡單,也就是我們在函數(shù)聲明的時(shí)候,就為某些參數(shù)指定好默認(rèn)值。當(dāng)我們調(diào)用函數(shù)的時(shí)候,如果沒有傳入對應(yīng)的參數(shù),那么則使用默認(rèn)值。

比如:

void func(int a, int b=2, int c=3, int d=4) {
    cout << a << " " << b << " " << c << " " << d << endl;
}


在這個(gè)函數(shù)func當(dāng)中,我們定義了三個(gè)變量的默認(rèn)值,那么我們在調(diào)用的時(shí)候,以下這幾種方式都是可以的:

func(1);   // 1 2 3 4
func(1, 3);   // 1 3 3 4
func(1, 3, 5);  // 1 3 5 4
func(1, 3, 4, 8); // 1 3 4 8


另外,默認(rèn)參數(shù)的值也不一定是定值,也可以是一個(gè)表達(dá)式,

例如:

class Test {
public:
    static int getValue() {
        return 1;
    }

    int func(int a, int b = getValue()) {
        return b;
    }
} ;


Python一樣,C++當(dāng)中也有對默認(rèn)參數(shù)的限制:如果某個(gè)參數(shù)是默認(rèn)參數(shù),那么從它開始之后的所有參數(shù)必須都是默認(rèn)參數(shù)。

void func(int a, int b=3, int c=4);  // 合法
void func(int a=3, int b=4, int c=5); // 合法
void func(int a, int b=3, int c);  // 非法


默認(rèn)參數(shù)是一個(gè)非常好用的特性,熟練使用可以大大降低編碼的復(fù)雜度,可以實(shí)現(xiàn)各種高級操作。

但默認(rèn)參數(shù)也有一個(gè)大坑,需要注意,就是和函數(shù)重載一起使用的時(shí)候。

比如我們有這樣兩個(gè)函數(shù):

void func(int a);
void func(int a, int b=3);


這兩個(gè)函數(shù)雖然函數(shù)名一樣,但是接收的參數(shù)不同。因此會被視作是函數(shù)重載,編譯器會根據(jù)我們傳入的參數(shù)進(jìn)行判斷究竟調(diào)用哪一個(gè)。

但如果我們這樣調(diào)用函數(shù),則會引起歧義:

func(3);


因?yàn)榫幾g器會不知道究竟你是在調(diào)用哪一個(gè)函數(shù),于是就會引發(fā)下列的報(bào)錯(cuò):

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

相關(guān)文章

  • C++ socket實(shí)現(xiàn)miniFTP

    C++ socket實(shí)現(xiàn)miniFTP

    這篇文章主要為大家詳細(xì)介紹了C++ socket實(shí)現(xiàn)miniFTP的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • 去掉vs2010中ipch文件和.sdf文件的解決方法

    去掉vs2010中ipch文件和.sdf文件的解決方法

    本篇文章介紹了,在vs2010中產(chǎn)生的ipch文件和.sdf文件的解決方法。需要的朋友參考下
    2013-05-05
  • Qt中暫停程序的幾種方法小結(jié)

    Qt中暫停程序的幾種方法小結(jié)

    本文主要介紹了Qt中暫停程序的幾種方法小結(jié),包含了4種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • C++詳細(xì)實(shí)現(xiàn)紅黑樹流程詳解

    C++詳細(xì)實(shí)現(xiàn)紅黑樹流程詳解

    今天我要跟大家介紹二叉搜索樹中的另一顆樹——紅黑樹,它主要是通過控制顏色來控制自身的平衡,但它的平衡沒有AVL樹的平衡那么嚴(yán)格
    2022-06-06
  • 淺談C++20新增內(nèi)容

    淺談C++20新增內(nèi)容

    C++20 是 C++ 語言的一次重大更新,它引入了許多新特性,本文主要介紹了淺談C++20新增內(nèi)容,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-04-04
  • C++實(shí)現(xiàn)LeetCode(151.翻轉(zhuǎn)字符串中的單詞)

    C++實(shí)現(xiàn)LeetCode(151.翻轉(zhuǎn)字符串中的單詞)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(151.翻轉(zhuǎn)字符串中的單詞),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C語言中對文件最基本的讀取和寫入函數(shù)

    C語言中對文件最基本的讀取和寫入函數(shù)

    這篇文章主要介紹了C語言中對文件最基本的讀取和寫入函數(shù),是C語言入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-08-08
  • C++超詳細(xì)講解標(biāo)準(zhǔn)庫

    C++超詳細(xì)講解標(biāo)準(zhǔn)庫

    C++強(qiáng)大的功能來源于其豐富的類庫及庫函數(shù)資源。C++標(biāo)準(zhǔn)庫(C++ Standard Library, 亦可稱作,C++標(biāo)準(zhǔn)程序庫)的內(nèi)容總共在50個(gè)標(biāo)準(zhǔn)頭文件中定義。在C++開發(fā)中,要盡可能地利用標(biāo)準(zhǔn)庫完成
    2022-06-06
  • C++最短路徑Dijkstra算法的分析與具體實(shí)現(xiàn)詳解

    C++最短路徑Dijkstra算法的分析與具體實(shí)現(xiàn)詳解

    經(jīng)典的求解最短路徑算法有這么幾種:廣度優(yōu)先算法、Dijkstra算法、Floyd算法。本文是對?Dijkstra算法的總結(jié),該算法適用于帶權(quán)有向圖,可求出起始頂點(diǎn)到其他任意頂點(diǎn)的最小代價(jià)以及對應(yīng)路徑,希望對大家有所幫助
    2023-03-03
  • C語言輸入三角形邊長判斷其類型并輸出面積實(shí)例代碼

    C語言輸入三角形邊長判斷其類型并輸出面積實(shí)例代碼

    這篇文章主要介紹了C語言輸入三角形邊長判斷其類型并輸出面積實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01

最新評論

肃北| 调兵山市| 邵阳市| 崇明县| 巩义市| 合川市| 大英县| 泸州市| 茌平县| 宁明县| 遂平县| 宜章县| 砀山县| 武清区| 酒泉市| 古浪县| 合水县| 张家界市| 吴江市| 漠河县| 香港| 固原市| 青田县| 沛县| 昌宁县| 广汉市| 交口县| 开平市| 湾仔区| 安义县| 关岭| 德州市| 塘沽区| 宜春市| 阿拉善盟| 罗城| 盐城市| 旬邑县| 永新县| 新化县| 广元市|