在 c++++ 中,函數參數可設置默認值,簡化函數調用和提高代碼可讀性。此外,c++11 引入了命名參數,允許在函數調用時使用參數名稱指定參數值,從而增強代碼可讀性和靈活性:默認參數:使用等號 (=) 指定參數默認值。命名參數:使用冒號 (:) 分隔參數名稱和值,在函數調用時指定參數名稱。
C++ 函數的默認參數和命名參數
在 C++ 中,函數參數可以帶有默認值,這可以簡化函數調用并使代碼更易于閱讀。此外,C++11 引入了命名參數,允許在函數調用時指定參數名稱。
默認參數
要為函數參數設置默認值,請在參數類型后跟一個等號 (=) 和一個默認值。例如:
int sum(int a, int b = 0) { return a + b; }
登錄后復制
在這個例子中,b
參數的默認值是 0。如果在調用函數時未指定 b
的值,則將使用默認值 0。
優點:
簡化函數調用,因為它允許省略具有默認值的可選參數。提高代碼可讀性,因為可以輕松識別函數的參數及其默認值。
命名參數
C++11 引入了命名參數,允許在函數調用時通過其名稱指定參數值。語法是使用 :
分隔參數名稱和值。例如:
int sum(int a, int b = 0) { return a + b; } int main() { int result = sum(b: 5, a: 3); // 使用命名參數 return 0; }
登錄后復制
在上面的示例中,result
變量將包含 8,因為 a
參數設置為 3,b
參數通過命名參數指定為 5。
優點:
提高代碼可讀性,因為它明確了哪個參數值與哪個參數名稱相關聯。在參數順序不重要的情況下,允許更靈活的函數調用。可以輕松交換參數值,而無需修改函數簽名。
實戰案例
考慮一個計算圓面積的函數:
double calcArea(double radius) { return 3.14159 * radius * radius; }
登錄后復制
使用默認參數,我們可以允許 radius
參數具有默認值 1.0:
double calcArea(double radius = 1.0) { return 3.14159 * radius * radius; }
登錄后復制
現在,我們可以使用默認值調用函數,也可以在需要時使用命名參數覆蓋默認值:
double area1 = calcArea(); // 使用默認半徑 1.0 double area2 = calcArea(radius: 5.0); // 使用命名參數指定半徑
登錄后復制