提供給它的預設值

2021-06-21 20:35:06 字數 2057 閱讀 3146

預設的引數是乙個函式的引數有乙個提供給它的預設值。如果使用者不提供此引數的值,將使用預設值。如果使用者提供的預設引數值,使用使用者提供的價值。

考慮下面的程式:

1

2

3

4

5

6

7

8

9

10

11

12

voidprintvalues(intnvalue1,intnvalue2=10)

intmain()

該程式產生的輸出如下:

第一值:1

第二值:10

第一值:3

第二值:4

在第乙個函式呼叫,呼叫者不**nvalue2爭吵,所以函式使用預設值10。在第二次呼叫,呼叫者並**nvalue2值,所以使用者提供的值進行。

預設的引數是乙個很好的選擇,當函式需要乙個值,使用者可能會或可能不會想重寫。例如,這裡有幾個函式原型的預設引數可能是常用的:

1

2

3

voidopenlogfile(char*strfilename="default.log");

introlldie(intnsides=6);

voidprintstring(char*strvalue, color ecolor=color_black);// color is an enum

乙個函式

可以有多個

預設引數:1

2

3

4

5

voidprintvalues(intnvalue1=10,intnvalue2=20,intnvalue3=30)

給定下面的

函式呼叫:1

2

3

4

printvalues(1, 2, 3);

printvalues(1, 2);

printvalues(1);

printvalues();

將產生以下輸出:

價值觀:1 2 3

價值觀:1 2 30

價值觀:1 20 30

價值觀:10 20 30

請注意,這是不可能也沒有提供nvalue1和nvalue2提供的價值為nvalue3使用者定義的值。這是因為c++不支援函式呼叫如printvalues(,,3)。這有兩個主要的後果:

1)所有預設的引數必須是最右邊的引數。

以下是不允許的:1

voidprintvalue(intnvalue1=10,intnvalue2);// not allowed

2)最左邊的預設引數應該是乙個最有可能被使用者更改。

預設引數和函式過載

帶預設引數的函式可以被過載。例如,下面的是允許的:

提供給外部呼叫的介面設計原則

1 介面入參 出參和介面名應擁有統一的命名規範,要做到見名知意。2 不要做大而全的介面,要盡量保持介面的功能單一 好處 這樣有利於介面除錯 改造公升級和維護 3 介面出參應含有介面呼叫結果資訊 code 和 message 字段 4 介面出參應對同型別 單條,多條,分頁 的資料有固定相同的格式 好處...

方法引數 預設值 Python引數的預設值陷阱!

今日分享 引數的預設值陷阱 下面定義的函式f,其引數d是乙個預設引數,且為字典型別 def f a,d print f a print f d do some process return d 最後返回字典d,下面呼叫函式f ret dict f 1 第二個引數d使用預設值 ret dict b 2...

lua 函式 預設值 定義函式引數的預設值

如果你想要命名引數和預設值,如php或python,你可以使用表構造函式呼叫你的函式 myfunction 函式本身可以有這樣的簽名 function myfunction t setmetatable t,local a,c t 1 or t.a,t 2 or t.b,t 3 or t.c fun...