C 函式預設引數的作用

2022-03-25 14:48:48 字數 712 閱讀 7920

用法:void func(int param1, int param2 = 1, int param = 3) {}

func(10); //等同於func(10, 1 , 3)

func(10,8); //等同於func(10, 8, 3)

func(10, , 3);//編譯錯誤,只能最右邊的連續若干個引數預設

意義:函式引數可預設的目的在於提高成虛的可擴充套件性。

例如在乙個系統中,有乙個繪製圓形的方法drawcircle(int radius, int x, int y), 其有三個引數,分別代表了圓的半徑,圓心的座標,這個方法在系統的多處被使用。

現在需要給這個方法加乙個繪製顏色的引數,之前的圓形預設顏色都是黑色,並且不需要進行顏色修改。有兩種方法可以解決這個問題:

1、直接修改為drawcircle(int radius, int x, int y, int color),並且修改每一處使用到該方法的地方;

2、將顏色設為預設引數,drawcircle(int radius, int x, int y, int color=black);

現分析兩種方法的優缺點,第一種方法很明顯工作量大並且意義不大,因為大部分使用了該方法的地方不需要進行顏色設定,可以說是出力不討好。而第二種方法,並不需要去修改之前已經使用過的地方,因為顏色引數預設值為黑色,而在未來要使用drawcircle的地方可以進行顏色設定。

這就是預設引數的使用意義,方便系統的擴充套件。

C (帶有預設引數的函式引數)預設函式引數

預設引數?在c 中,允許實參的個數與形參的個數不同。在宣告函式原型時,為乙個或者多個形參指定預設值,以後呼叫這個函式時,若省略某乙個實參,c 則自動的以預設值作為相應引數的值。實列說明 includeusing namespace std int add int x 4,int y 7 int ma...

函式的作用域和預設引數

一 預設引數 1 不指定,就使用預設引數 stanf student 不會報錯 2 沒有預設值得引數我可以叫做必填引數 3 預設引數可以定義多個 def stamf a,b 2,c 3 4 定義函式的時候一定是必選引數在前,預設引數在後 二 可變引數 儲存在乙個元組tuple 示例 a的平方 b的平...

python函式預設引數作用域

當def函式引數預設值為物件時,例如列表,字典 示例1 猜測一下,會輸出什麼?def ddd a,b return b print ddd 1 print ddd 2,a b c print ddd 3 1 a b c 2 3 你是否認為是這樣?輸出一下看看 輸出結果 1 a b c 2 1,3 看...