1. 程式人生 > 實用技巧 >C++帶預設引數的函式

C++帶預設引數的函式

帶預設引數的函式在呼叫時,可以不給有預設值的引數傳參, 編譯器會自動使用預設值, 使用預設引數定義函式需要注意兩點:

1,函式的某個位置的引數使用了預設引數, 則該引數後, 從左至右的所有引數必須給出預設引數, 否則報錯:Miss default argument on parameter 'paramName'

2,對於函式的某個預設引數初始值的設定要麼在函式宣告中給出, 要麼在函式定義中給出, 不能即在函式宣告給出, 又在函式定義中給出, 否則報錯:Redefinition of default arguent

#include<iostream>

using namespace
std; /** * 帶有預設引數的函式, 若函式的某些引數具有預設值, 則呼叫該函式時, 可以不給這些引數傳引數, 而使用預設值 * * @param a 引數a * @param b 引數b, 預設值為54 * @param c 引數c, 預設值為12 * @return 引數a, b, c之和 */ int add1(int a, int b = 54, int c = 12) { return a + b + c; } /** * 使用帶預設引數的函式的注意事項 * 1,若函式的某個位置使用了預設引數, 則該位置之後, 從左至右的所有引數必須定義預設引數, 否則報錯 * 形如:Missing default argument on parameter 'b' * 2,函式的宣告和定義中對於引數的預設值只能存在一次,否則報錯 * 形如:Redefinition of default argument
*/ /*int add2(int a = 10, int b, int c){ return a + b + c; }*/ int add2(int a, int b = 10, int c = 20); int add2(int a = 0, int b, int c) { return a + b + c; } /*int add2(int a = 0, int b =12, int c) { return a + b + c; }*/ int main() { //call function "add1" cout << "call add1(10) and result is
" << add1(10) << endl; cout << "call add1(10,20) and result is " << add1(10,20) << endl; system("pause"); return 0; }