04 預設引數

2021-09-11 13:01:46 字數 884 閱讀 5221

聽說過函式有預設值嗎,想了一下,腦袋一團漿糊,好,今天來認識一下

複製**

c++允許函式設定預設引數,在呼叫時可以根據情況省略實參。規則如下:

預設引數只能按照右到左的順序

如果函式同時有宣告、實現,預設引數只能放在函式宣告中

預設引數的值可以是常量、全域性符號(全域性變數、函式名)

複製**

將main.m 改為mian.mm 檔案

#include

using namespace std;

void display(int a = 10, int b = 20)

int main

() 看下列印結果:

a is 10

b is 20

a is 1

b is 20

a is 1

b is 3

是不是很厲害的樣子,嗯嗯,當時我也是這麼想的。

複製**

在檔案裡是不是可以過載一下函式,定義兩個函式

void display(int a = 10)

void display

() 此時會發現

display();

display(1);

這兩個函式呼叫會報錯"call to 'display' is ambiguous",

這就是函式二義性,導致編譯器不知道呼叫哪乙個,建議優先選擇使用預設引數。

可對比下第二講的函式過載部分。

複製**

完整**demo,請移步github:ddglearningcpp

當然c++大神就繞吧,非喜勿噴,畢竟這是個人的學習筆記?

04 預設引數

聽說過函式有預設值嗎,想了一下,腦袋一團漿糊,好,今天來認識一下c 允許函式設定預設引數,在呼叫時可以根據情況省略實參。規則如下 預設引數只能按照右到左的順序 如果函式同時有宣告 實現,預設引數只能放在函式宣告中 預設引數的值可以是常量 全域性符號 全域性變數 函式名 將main.m 改為mian....

python 預設引數 Python預設引數有坑?

最近有小夥伴在面試中遇到了 關於函式預設引數的坑 的題目,少數夥伴對此問題理得不是太清楚,今天匯智妹請到匯智動力高階教師鄧老師為大家詳細講解一下,幫助不太清楚的小夥伴清晰的梳理一遍。鄧老師本次主要從以下三點來講解 什麼是預設引數?函式預設引數的坑是什麼?函式預設引數為什麼會有坑?一 什麼是預設引數 ...

python 預設引數值 預設引數值

該樓層疑似違規已被系統摺疊 隱藏此樓檢視此樓 最常用的一種形式是為乙個或多個引數指定預設值。這會建立乙個可以使用比定義時允許的引數更少的引數呼叫的函式,例如 def ask ok prompt,retries 4,complaint yes or no,please while true ok in...