在本文中,您將學習什么是默認參數(shù),如何使用它們以及使用它的必要聲明。
在C ++編程中,您可以提供函數(shù)參數(shù)的默認值。
默認參數(shù)背后的想法很簡單。如果通過傳遞參數(shù)調(diào)用函數(shù),則這些參數(shù)將由函數(shù)使用。
但是,如果在調(diào)用函數(shù)時未傳遞參數(shù),則使用默認值。
默認值傳遞給函數(shù)原型中的參數(shù)。
// c++程序演示默認參數(shù)的工作方式 #include <iostream> using namespace std; void display(char = '*', int = 1); int main() { cout << "沒有參數(shù)傳遞:\n"; display(); cout << "\n第一個參數(shù)被傳遞:\n"; display('#'); cout << "\n兩個參數(shù)被傳遞:\n"; display('$', 5); return 0; } void display(char c, int n) { for(int i = 1; i <= n; ++i) { cout << c; } cout << endl; }
輸出結(jié)果
沒有參數(shù)傳遞: * 第一個參數(shù)被傳遞: # 兩個參數(shù)被傳遞: $$$$$
在上面的程序中,您可以看到分配默認值給參數(shù) void display(char ='*',int = 1);。
首先,在display()不傳遞任何參數(shù)的情況下調(diào)用函數(shù)。在這種情況下,display()函數(shù)同時使用了默認參數(shù)c = *和n = 1。
然后,第二次使用該函數(shù)只傳遞第一個參數(shù)。在這種情況下,函數(shù)不使用傳遞的第一個默認值。它使用作為第一個參數(shù)傳遞的實際參數(shù)c = #,并將默認值n = 1作為第二個參數(shù)。
當?shù)谌蝑isplay()被調(diào)用時傳遞兩個參數(shù),都不使用默認參數(shù)。傳遞的值分別為 c = $和n = 5.
void add(int a, int b = 3, int c, int d = 4);
上面的函數(shù)將無法編譯。您不能跳過兩個參數(shù)之間的默認參數(shù)。
在這種情況下,c還應分配一個默認值。
void add(int a, int b = 3, int c, int d);
上面的函數(shù)也不會編譯。您必須在b之后為每個參數(shù)提供默認值。
在這種情況下,c和d也應該被分配缺省值。
如果只需要一個默認參數(shù),請確保該參數(shù)是最后一個參數(shù)。如:void add(int a, int b, int c, int d = 4);
如果您的函數(shù)執(zhí)行了多項操作,或者邏輯看起來過于復雜,則可以使用 函數(shù)重載更好地分離邏輯。
無論如何使用默認參數(shù),都應該始終編寫一個函數(shù),使它只用于一個目的。