欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++函數的默認參數詳情

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

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

C++當中的支持默認參數,如果你學過Python,那么想必對此不會陌生。C++中的默認參數的用法和Python基本一致。

使用默認參數的方法非常簡單,也就是我們在函數聲明的時候,就為某些參數指定好默認值。當我們調用函數的時候,如果沒有傳入對應的參數,那么則使用默認值。

比如:

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


在這個函數func當中,我們定義了三個變量的默認值,那么我們在調用的時候,以下這幾種方式都是可以的:

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


另外,默認參數的值也不一定是定值,也可以是一個表達式,

例如:

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

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


Python一樣,C++當中也有對默認參數的限制:如果某個參數是默認參數,那么從它開始之后的所有參數必須都是默認參數。

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);  // 非法


默認參數是一個非常好用的特性,熟練使用可以大大降低編碼的復雜度,可以實現各種高級操作。

但默認參數也有一個大坑,需要注意,就是和函數重載一起使用的時候。

比如我們有這樣兩個函數:

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


這兩個函數雖然函數名一樣,但是接收的參數不同。因此會被視作是函數重載,編譯器會根據我們傳入的參數進行判斷究竟調用哪一個。

但如果我們這樣調用函數,則會引起歧義:

func(3);


因為編譯器會不知道究竟你是在調用哪一個函數,于是就會引發(fā)下列的報錯:

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

相關文章

  • 詳解C++引用變量時那些你不知道的東西

    詳解C++引用變量時那些你不知道的東西

    這篇文章主要為大家詳細介紹了C++引用變量時那些你不知道的東西——引用變量延遲綁定,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2022-11-11
  • C++vector的用法你都知道嘛

    C++vector的用法你都知道嘛

    這篇文章主要為大家詳細介紹了C++中vector的用法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • C語言圖文并茂講解分支語句用法

    C語言圖文并茂講解分支語句用法

    分支結構的執(zhí)行是依據一定的條件選擇執(zhí)行路徑,而不是嚴格按照語句出現的物理順序。分支結構的程序設計方法的關鍵在于構造合適的分支條件和分析程序流程,根據不同的程序流程選擇適當的分支語句
    2022-04-04
  • C++繼承模式詳解

    C++繼承模式詳解

    繼承機制是面向對象程序設計使代碼可以復用的最重要的手段,它允許程序員在保持原有的特性基礎上進行擴展,增加功能,這樣產生新的類,稱作是派生類。繼承呈現了面向對象程序設計的層析結構,體現了由簡單到復雜的認知過程。繼承是類設計層次的復用。
    2021-12-12
  • 哈希表實驗C語言版實現

    哈希表實驗C語言版實現

    以下是對哈希表實驗用C語言實現的代碼進行了詳細的分析介紹,需要的朋友可以參考下
    2013-07-07
  • 基于QT實現自定義溫度計的示例代碼

    基于QT實現自定義溫度計的示例代碼

    QT原生控件沒有實現如儀表盤或者溫度計的控件,只好自己實現,所以本文為大家介紹了如何利用qt實現自定義溫度/濕度控件,感興趣的小伙伴可以了解下
    2023-11-11
  • C++子類父類成員函數的覆蓋和隱藏實例詳解

    C++子類父類成員函數的覆蓋和隱藏實例詳解

    這篇文章主要介紹了C++子類父類成員函數的覆蓋和隱藏實例詳解的相關資料,需要的朋友可以參考下
    2017-06-06
  • c++常量詳解

    c++常量詳解

    常量是存放固定且不可變值的,一旦確定初始值則在程序其它地方不可改變, 所以const對象必須初始化。常量一般使用const關鍵字來修飾
    2017-06-06
  • C語言實現萬年歷小程序

    C語言實現萬年歷小程序

    這篇文章主要為大家詳細介紹了C語言實現萬年歷小程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • C和C++的區(qū)別詳解

    C和C++的區(qū)別詳解

    這篇文章主要介紹了C和C++之間的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-10-10

最新評論