1、函式引數的預設值
舉個例子:
#include int mul(int x = 0); //前項宣告
int main()
int mul(int x )
#include int mul(int x = 0)
int main()
其實不寫宣告,直接在函式定義裡的引數中寫預設值也是可以的。
如上所示,當我們的函式沒有提供引數時,會使用預設引數。預設引數就是前項宣告裡的值。
引數的預設值必須在函式宣告中指定,函式的定義中不能出現引數的預設值,會報錯。當函式宣告和定義中的引數預設值不同時,同樣也會報錯。
詳情:
#include int mul(int x = 2); //前項宣告
#include int mul(int x = 2); //前項宣告
2、引數預設規則— 引數的預設值必須從右向左提供
— 函式呼叫時使用了預設值,則後續引數必須使用預設值
int add(int x, int y = 1, int z = 2)
add(0);
add(2, 3);
add(3, 2, 1);
先用你函式提供的引數,如果不夠就使用預設值引數。
如果在宣告時引數預設值不按從右向左提供的規則:
很明顯,程式報錯。解決的辦法是我們可以在函式宣告和函式定義的時候給它調個位子。
3、函式的佔位引數
int func(int x, int)
//...
func(1, 2); //ok
佔位引數的出現實際上是為了相容c語言,因為c語言有這樣的寫法:void func();
它可以接收任意個引數,但是這條語句在c++裡面的意思就是不接收任意引數。
#include void func(int = 0, int = 0)
int main()
小結: ES6 函式的擴充套件 rest引數
es6 引入 rest 引數 形式為 變數名 用於獲取函式的多餘引數,這樣就不需要使用 arguments 物件了。rest 引數搭配的變數是乙個陣列,該變數將多餘的引數放入陣列中。function add values return sum add 2,5,3 10上面 的 add 函式是乙個求和...
ES6函式擴充套件(函式引數預設值)
一 函式的預設引數基本使用方法function test x,y hello test winne 函式引數 winne hello test winne hi 函式引數 winne hi如上 我們可以看出,當函式引數有了預設值可以不傳入那個引數,那麼就直接使用預設的引數。注意 引數變數是預設宣告的...
ES6 函式擴充套件(函式引數預設值)
es6 之前,不能直接為函式的引數指定預設值,只能採用變通的方法。function log x,y log hello hello world log hello china hello china log hello hello world面 檢查函式log的引數y有沒有賦值,如果沒有,則指定預設...